似乎Ruby IO#getc在返回字符之前等到接收到\n.
如果您尝试运行此脚本:
STDOUT.sync = true
STDIN.sync = true
while data = STDIN.getc
STDOUT.puts "Char arrived"
end
Run Code Online (Sandbox Code Playgroud)
每个发送到stdin的char都会返回一个"Char arrival",但只有在发送了\n之后才会返回.
即使我写STDIN.sync = true,似乎所有char都被缓冲.
在将字符发送到STDIN之后,有没有人知道如何使脚本打印"Char到达"?