我是荷蘭人,所以我的英語不是很好。對不起。
這是工作了答案:
import Foundation
print("What is your age?")
var fhcpy: NSData? = NSFileHandle.fileHandleWithStandardInput().availableData
if let data = fhcpy{
var str: String = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
var numstr: String = ""
for char in str.characters {
if Int("\(char)") != nil {
numstr.append(char)
}
}
var num: Int? = Int(numstr)
if let opNum = num {
print("Your age is \(opNum)")
} else {
print("That is not a valid number. ")
}
}
我如何做它
首先,我TRED雨燕1.0的方法,但確實導致了誤差(Get input in swift 1.0)。這是if let
方法(Error handling)。之後,我製作了一個可選項fhcpy
,其中NSDate
的值爲fh.availbleData
。其中解決了if let
的問題。現在我們要獲得一個Int
值(Get Int value)。現在我們用Int()來做到這一點,但每次都會返回nil
。我們使用for來查看變量str
中的內容。
代碼:
import Foundation
print("What is your age?")
var fhcpy: NSData? = NSFileHandle.fileHandleWithStandardInput().availableData
if let data = fhcpy{
var str: String = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
for char in str.characters {
print(char)
}
var num: Int? = Int(str)
print("Your age is \(num)")
}
輸出:
What is your age?
12
1
2
Your age is nil
Program ended with exit code: 0
你看到新行?因此,我們編程for
,測試「如果字符串中的字符是Int
Character
將被附加到strnum
」。最後,strnum
被導出到Int
。
示例代碼:
import Foundation
print("What is your name?")
var fhcpy: NSData? = NSFileHandle.fileHandleWithStandardInput().availableData
if let data = fhcpy{
var str: String = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
print("Your name is \(str)")
}
是什麼'userInput'得到輸出爲? –
[從cocoa/foundation工具控制檯讀取輸入?]的可能的重複(http://stackoverflow.com/questions/869802/read-input-from-a-cocoa-foundation-tool-console) – jtbandes