我编写了一个小程序,从标准输入中获取输入并将其打印到标准输出中。奇怪的是,一些垃圾字符也被打印出来了。
我在在线平台(repl.it)上尝试了相同的程序,并且运行良好。
代码如下:
import Foundation
let input = FileHandle.standardInput
while (true) {
let inputData = input.availableData
if var text = String(data: inputData, encoding: .utf8) {
text = String(text[..<text.index(before: text.endIndex)])
print(text)
}
}
INPUT -> 4.44|AB "h"
OUTPUT -> 4.44|AB "h
INPUT -> 4.44|AB "h ab"
OUTPUT -> 4.44|AB "h" ab
谁能指出是什么问题?
编辑:我仅在Xcode中遇到此问题。如果我从命令行使用swiftc,它将按预期工作。