我要在STDIN和STDOUT中编程,我需要在Xcode中创建一个命令行项目。但是如何在playground上进行标准输入。
每当我尝试在playground上运行这样的代码时
var input = readLine()!
我总是得到这个错误
Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0)
是否可以在playground上带有STDIN?
我知道这个错误是因为nil input
变量,但是想知道如何解决这个nil值?
发布于 2018-08-02 14:32:19
SWIFT 3的固定解决方案
要使其工作,请创建一个新的命令行工具项目。
转到“文件” - >“新建” - >“项目” - >“macOS” - >“命令行工具”。
import Foundation
print("Hello, World!")
func solveMefirst(firstNo: Int , secondNo: Int) -> Int {
return firstNo + secondNo
}
func input() -> String {
let keyboard = FileHandle.standardInput
let inputData = keyboard.availableData
return NSString(data: inputData, encoding:String.Encoding.utf8.rawValue) as! String
}
let num1 = readLine()
let num2 = readLine()
var IntNum1 = Int(num1!)
var IntNum2 = Int(num2!)
print("Addition of numbers is : \(solveMefirst(firstNo: IntNum1!, secondNo: IntNum2!))")
并使用运行项目 CMD + R
发布于 2018-08-02 16:02:17
尝试使用以下代码(https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html):
if let input = readLine() {
print("Input: \(input)")
} else {
print("No input.")
}
https://stackoverflow.com/questions/-100005898
复制相似问题