SwiftでreadLineで入力ができない
かなり初歩的な内容なのですが、Swiftでreadline()
を使ってEOFが入力されるまで入力を出力し続けるというコードを書いてます。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
while let input = readLine() {
print(input)
}
print("end")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
上記のコードを実行すると入力をする前にendが出力されてしまい困惑しています。デバッガを使って一行一行みていくとwhile文の判別式からprint("end")に飛んでしまっていることが確認できました。
readLine()
のドキュメンテーションを読むと、
If EOF has already been reached when
readLine()
is called, the result isnil
.
と書いてあるのですが、これはwhile let input = readLine()
の行へ行く前にすでにEOFが返されてしまっているということなのでしょうか…?
補足: xcodeの実行環境はVersion 9.4.1 (9F2000)です。