我正在尝试制作一个控制台程序,询问用户的姓名,并向他们打招呼。我在 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!
即使用户提示在代码中首先出现,它也会在打印任何测试之前接受用户输入。我错过了什么吗?
最佳答案
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 版本中,这不是必需的。
关于ruby - 为什么我的程序在提示用户之前接受用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52805976/