为什么我的程序在提示用户之前要接受用户输入?

时间:2018-10-14 18:48:42

标签: ruby

我正在尝试制作一个控制台程序,要求用户输入他们的姓名并打招呼。我在Notepad ++中进行编码,并在git bash控制台中运行它。我的代码是:

puts "Hello, please type in your name: "
name = gets.chomp
puts "Hello #{name}, it is a pleasure to meet you!"

运行时,它等待用户输入,一旦输入,它就会打印:

Hello, please type in your name:
Hello <name_the_user_entered>, it is a pleasure to meet you!

即使用户提示位于代码的第一位,它也会在打印任何测试之前接受用户输入。我想念什么吗?

1 个答案:

答案 0 :(得分:0)

Ruby可能正在缓冲输出。要强制使用,请使用flush

$stdout.puts "Hello, please type in your name: "
$stdout.flush
name = gets.chomp
puts "Hello #{name}, it is a pleasure to meet you!"

但是我认为在较新的Ruby版本中,这不是必需的。