2016-12-24 94 views
0

反正在swift中我們可以在單行中得到兩個輸入。Swift中單行的兩行readLine/scanf/stdin輸入

Ç
scanf("%d %d", &valueOne, &valueTwo);

,所以我可以進入10 20


迅速,我可以在一行只讀一個輸入,使用 readLine
let valueOne = readLine(); let valueTwo = readLine();


10 20

+0

通常使用迅疾創建iOS/OSX/watchOS?tvOS應用程序,而不是創建控制檯應用程序。所以對這樣一個功能的需求並不是那麼大。 – Sweeper

+0

我正在嘗試HackerRank,我必須以那種方式在那裏輸入一個值。這是可能的嗎? – arthankamal

+2

@Sweeper:將Swift用於命令行應用程序是完全合理的。它也用於服務器應用程序。否則Swift for Linux(或其他非Apple平臺)將毫無意義。 –

回答

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

隨着心大教堂@的幫助下,我寫了如下,以得到在同一條線上兩個輸入HackerRank

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