Ruby .gets 不起作用

标签 ruby sublimetext2 user-input

我试图在 Ruby 中获得简单的用户输入,但我无法让它工作。我正在使用 gets 方法,但程序从未停止要求我输入。我使用 Sublime Text 2 作为我的文本编辑器,我也在其中运行该程序(如果这有所不同)。

这是我的代码:

puts "What is your name?"
name = gets 
puts "Hello " + name + ". How are you?"

这是给我的错误(和输出):

C:/Users/Sten Sootla/Desktop/Ruby workspace/exercise.rb:3:in `+': can't convert nil into String (TypeError)
from C:/Users/Sten Sootla/Desktop/Ruby workspace/exercise.rb:3:in `'
What is your name?
[Finished in 0.1s with exit code 1]

为什么程序不停止询问我的输入?

最佳答案

尝试使用 $stdin.gets 而不是简单的 gets,这将强制输入来自标准输入

关于Ruby .gets 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377864/

相关文章:

settings - 每个项目的 Sublime Text 2 设置

autocomplete - 在 Sublime Text 2 上修改 HTML <script> 自动完成

c++ - 封装类的用户输入数据

input - 如何使用 J 编程语言获取用户输入

ruby - 形式参数不能是全局变量

ruby-on-rails - Rails 5 SQL 注入(inject)

html - 为什么 xpath 在 html 标签之外返回文本?

ruby - 在 Ruby 的情况下使用带正则表达式匹配的命名捕获……什么时候?

regex - 如何在 Sublime Text 2 文档中找到所有带单引号的属性并替换为双引号?

unit-testing - 为从中读取的函数填充 os.Stdin