我正在学习Ruby,并尝试了一个简单的代码:
system "clear"
print "What is your name?"
name = gets.chomp
puts name
puts "Hello #{ name.capitalize }, how are you?"
并且输出输出已准备就绪,无需显示请求的打印。然后在输入字符串后显示打印内容:
George
What is your name?George
Hello George, how are you?
请帮助。我很迷惑。谢谢!
这很可能是由输出缓冲引起的,应该通过在第一个$stdout.sync = true
语句之前添加print
来解决。
[另一种解决方法是在$stdout.flush
语句后调用print
手动刷新输出,或将print
替换为puts
(但这会添加换行符)。
我只是将OP的代码复制到了我的编辑器(VS代码)中,但我不了解OP的功能。我得到
What is your name?George
George
Hello George, how are you?
而不是
George
What is your name?George
Hello George, how are you?