在Swift

时间:2016-06-12 09:18:39

标签: ios swift input keyboard console-application

有人可以告诉我如何使用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()?

2 个答案:

答案 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)!
}