似乎 Ruby IO#getc 等到收到 \n 后再返回字符。
如果您尝试运行此脚本:
STDOUT.sync = true
STDIN.sync = true
while data = STDIN.getc
STDOUT.puts "Char arrived"
end
每个发送到标准输入的字符都会返回一个“字符到达”,但只有在发送了 \n 之后。
即使我写 STDIN.sync = true,似乎所有字符都被缓冲了。
有谁知道如何在将 char 发送到 STDIN 后立即使脚本打印“Char 到达”?