我是一个编程/Ruby的新手,无法解决这个古怪的问题...
在Windows上通过Git Bash运行以下Ruby代码:
$ ruby test.rb
puts "Give me input: "
input = gets
puts "You gave me #{input}"
在使用gets()等待输入之前,它不会打印“给我输入:”字符串。相反,它会立即等待输入,然后才打印提示和结果。我尝试过在prompt puts()之后使用$stdout.flush,但输出结果仍然相同。
不过,我在使用其他终端时没有遇到这个问题。
STDOUT.flush
或STDOUT.sync = true
,在执行input = gets
前刷新标准输出缓冲区,以确保程序正常运行。 - user11659763