有人可以告诉我如何使用Swift从控制台应用程序的键盘读取一组整数吗?
我尝试过以下方法:
func input() -> String {
let keyboard = NSFileHandle.fileHandleWithStandardInput()
let inputData = keyboard.availableData
return (NSString(data: inputData, encoding: NSUTF8StringEncoding) as! String)
}
但是此函数会将输入的值视为字符串。 将字符串转换为Int会产生零值。
是否有类似于C,C ++的scanf()或cin()?
答案 0 :(得分:1)
1. If 语句和强制解包
var number:Int?
print("Enter a number")
number = Int(readLine()!)
if number != nil{
print("The entered number is", number!)
}
else{
print("The input is not a number")
}
声明一个可选的 Int 变量或常量。使用 readLine() 输入数字,readLine() 返回字符串,所以我们必须使用 Int() 进行类型转换。我们必须使用“!”来解开 readLine() 的返回值。如果输入的是数字,则该数字将转换为 Int 并存储在变量“number”中,否则 nil 将存储在可选的 Int 变量“number”中。
2.上面代码的简化版
print("Input a number: ")
if let input = Int(readLine()!){
print("The entered number is", input)
}
else{
print("The input is not a number")
}
答案 1 :(得分:0)
您可以将结果转换为int,如下所示: Int (字符串)// swift 2.0
或
试试这个:
var intVal:Int
if let i = readLine(stripNewline: true){ //keyboard
intVal = Int(i)!
}