【发布时间】:2011-11-15 20:45:19
【问题描述】:
似乎 Ruby IO#getc 等到收到 \n 后再返回字符。
如果您尝试运行此脚本:
STDOUT.sync = true
STDIN.sync = true
while data = STDIN.getc
STDOUT.puts "Char arrived"
end
每个发送到标准输入的字符都会返回一个“字符到达”,但只有在发送了 \n 之后。
即使我写 STDIN.sync = true,似乎所有字符都被缓冲了。
有谁知道如何在将字符发送到 STDIN 后立即使脚本打印“字符到达”?
【问题讨论】:
-
Get Single Char from Console Immediately 或 How to Get a Single Character in Ruby without Pressing Enter 的可能重复项(关于如何解决这个问题有几个很好的答案)。