开发者

Ruby Inputs - Weird?

开发者 https://www.devze.com 2023-01-05 23:18 出处:网络
I\'m a bit confused with the input\'s of Ruby. Whenever I try to get input, it doesn\'t register the \'Backspace\' key. Also, it never accepts the \'Enter\' first time. I always have to push \'Enter\

I'm a bit confused with the input's of Ruby.

Whenever I try to get input, it doesn't register the 'Backspace' key. Also, it never accepts the 'Enter' first time. I always have to push 'Enter' after my input usually 3 times before it actually inputs it.

For example,

view source print? 1 my_var = gets.chomp

If I wanted to enter 'Hello', I would have to type it followed by pressing the return key 3 times before it actually entered it.

Now I did find a way to solve this using...

view source print? 1 STDOUT.flush 2 my_var = gets.chomp

But...

1) This seems wierd having to enter that EVERY time before I want input?

2) It still doesn't solve the problem of registering backspace.

If I was to type开发者_如何学JAVA directly 'Hello World' but with two accidental keystrokes such as this: Hello Worpold

Even if I used the backspace so it appeared as I was entering: Hello World

If I then went on to 'puts' or 'print' that it would output: Hello Worpold

Know how I can fix it so it accepts backspace and know any other ways of missing out STDOUT.flush?

Thanks in advance


Use the readline module.


What environment are you running Ruby in ? If you're unsure, check with ruby -v

>ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]

I'm running v1.8.6 on Windows XP

a = gets
puts "I just got #{a}"

Saved the above snippet to c:\temp.rb and run it with ruby c:\temp.rb Backspace key works, I can correct strings before pressing enter once to confirm my input.

0

精彩评论

暂无评论...
验证码 换一张
取 消