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

标签 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!

即使用户提示在代码中首先出现,它也会在打印任何测试之前接受用户输入。我错过了什么吗?

最佳答案

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/

相关文章:

ruby-on-rails - 了解 bundler 依赖解析

ruby - REXML 无法从属性中进行选择。错误或不正确的 XPath?

ruby - 如何在 Ruby 2.1 中获取给定 UTF-8 代码的字符

arrays - Ruby - 数组交集(有重复项)

ruby-on-rails - 如何仅修改内存中的 zip 文件?

ruby-on-rails - 我可以将数组与文本分开吗?

尝试检查对象类型时出现 Ruby TypeError

iphone - 在没有 Mac 的情况下开发 iPhone 应用程序?

java - 如何获得名词的复数形式?

ruby - Sinatra 中使用表单字段的语法错误