首页 > 解决方案 > Ruby 问题:我的“gets”函数在“puts”语句之前执行

问题描述

我正在学习 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?

请帮忙。我很困惑。谢谢!

标签: ruby

解决方案


这可能是由输出缓冲引起的,应该通过$stdout.sync = true在第一条print语句之前添加来修复。

另一种解决方案是在语句之​​后调用$stdout.flush手动刷新输出或替换为(但这会添加换行符)。printprintputs


推荐阅读