2016-12-24 9 views
0

とにかくすぐに1つのラインで2つの入力を得ることができますか?スウィフト2つのreadLine/scanf/stdin入力をシングルライン

と同様にC
scanf("%d %d", &valueOne, &valueTwo);

ので、私は10 20


を入力することができます。しかし 迅速に、私は
同様 readLine
let valueOne = readLine(); let valueTwo = readLine();

を使用して、1行に一つだけの入力を読み取ることができます 10 20

+0

それを書きましたiOS/OSX/watchOS?tvOSアプリを作成し、コンソールアプリを作成することはできません。そのような機能の要求はそれほど大きくありません。 – Sweeper

+0

私はHackerRankを試しています。私はそこに値を入力しました。それは可能でしょうか? – arthankamal

+2

@ Sweeper:Swiftをコマンドラインアプリケーションに使用するのは完全に合理的です。サーバーアプリケーションにも使用されます。さもなければ、Linux(または他の非Appleプラットフォーム)のSwiftは意味をなさないでしょう。 –

答えて

1

アレイに読み込まれた内容を簡単に分割できます。

let values = readLine()?.components(separatedBy: CharacterSet.whitespacesAndNewlines) ?? [] 

これらを複数の変数に異なる方法で格納することができます。次に例を示します。

let valueOne = values.count > 0 ? Int(values[0]) : nil 
let valueTwo = values.count > 1 ? Int(values[1]) : nil 
+0

ありがとうございました。あなたの答えは私を助けました。 – arthankamal

1

@・クールの助けを借りて、私は通常、あなたがへの迅速な使用で同じ行に2つの入力を取得するには、以下のようにHackerRank

let values = readLine()?.characters.split(" ").flatMap(String.init)