

かなり初歩的な内容なのですが、Swiftで`readline()`を使ってEOFが入力されるまで入力を出力し続けるというコードを書いてます。

[code]

    import UIKit
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            while let input = readLine() {
                print(input)
            }
    
            print("end")
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    }
    
[/code]

上記のコードを実行すると入力をする前にendが出力されてしまい困惑しています。デバッガを使って一行一行みていくとwhile文の判別式からprint("end")に飛んでしまっていることが確認できました。

`readLine()`のドキュメンテーションを読むと、

> If EOF has already been reached when `readLine()` is called, the result is
> `nil`.

と書いてあるのですが、これは`while let input =
readLine()`の行へ行く前にすでにEOFが返されてしまっているということなのでしょうか…？

補足： xcodeの実行環境はVersion 9.4.1 (9F2000)です。


CC BY-SA 4.0
2018-07-28T18:47:01.963
47063
2018-07-28T18:47:01.963
25350
question
swift4
SwiftでreadLineで入力ができない