Ruby IO#getcは文字を返す前に\ nを受け取るまで待機しているようです。Ruby STDIN.getcが受信時に文字を読み取らない
あなたは、このスクリプトを実行しようとした場合:
STDOUT.sync = true
STDIN.sync = true
while data = STDIN.getc
STDOUT.puts "Char arrived"
end
それは1標準入力に送られた文字ごとに「シャアが到着した」が、唯一の\ nは後に送られてきたが返されます。
STDIN.sync = trueと書いても、すべてのcharがバッファリングされているようです。
チャドがSTDINに送信された直後に、「Char arrived」というスクリプトの印刷方法を知っている人はいますか?
[すぐにコンソールからの単一のシャアを取得](http://stackoverflow.com/questions/8072623/get-single-char-from-console-immediately)の可能性が重複したり、[1文字を取得する方法RubyでEnterキーを押さないでください(http://stackoverflow.com/questions/174933/how-to-get-a-single-character-in-ruby-without-pressingenter)(いくつかの良い答えがありますこれを解決する)。 – Phrogz