Ruby输入 - 很奇怪?

时间:2010-07-08 10:56:26

标签: ruby

我对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的方法吗?

提前致谢

2 个答案:

答案 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运行它 退格键有效,我可以在输入一次之前纠正字符串以确认我的输入。