我对Ruby的输入感到有些困惑。
每当我尝试输入时,它都不会注册“Backspace”键。此外,它从未接受第一次'输入'。在我输入之后,我总是必须在输入之前按“输入”3次才能输入它。
例如,
查看来源 打印? 1 my_var = gets.chomp
如果我想输入'Hello',我必须输入它,然后在实际输入之前按回车键3次。
现在我确实找到了一种解决方法......
查看来源 打印? 1 STDOUT.flush 2 my_var = gets.chomp
但是...
1)在我想要输入之前,这似乎很难进入吗?
2)它仍然无法解决注册退格的问题。
如果我直接键入'Hello World',但有两次意外击键:Hello Worpold
即使我使用了退格键,所以它在我输入时出现:Hello World
如果我继续'put'或'print'它会输出:Hello Worpold
知道如何修复它以便它接受退格并知道任何其他错过STDOUT.flush的方法吗?
提前致谢
答案 0 :(得分:1)
使用readline模块。
答案 1 :(得分:1)
你在运行Ruby的环境是什么?如果您不确定,请查看ruby -v
>ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
我在Windows XP上运行v1.8.6
a = gets
puts "I just got #{a}"
将上述代码段保存到c:\ temp.rb并使用ruby c:\temp.rb
运行它
退格键有效,我可以在输入一次之前纠正字符串以确认我的输入。