Ruby Inputs - Странно? - PullRequest
       3

Ruby Inputs - Странно?

0 голосов
/ 08 июля 2010

Я немного запутался с входными данными Ruby.

Всякий раз, когда я пытаюсь получить ввод, он не регистрирует клавишу «Backspace». Кроме того, он никогда не принимает «Enter» в первый раз. Мне всегда приходится нажимать «Ввод» после ввода, обычно 3 раза, прежде чем оно действительно вводится.

Например,

просмотр источника Распечатать? 1 my_var = gets.chomp

Если бы я хотел ввести «Привет», мне пришлось бы набирать его, а затем нажать клавишу возврата 3 раза, прежде чем он действительно вводится.

Теперь я нашел способ решить эту проблему, используя ...

просмотр исходного кода Распечатать? 1 STDOUT.flush 2 my_var = gets.chomp

Но ...

1) Кажется странным, что нужно вводить КАЖДЫЙ раз, прежде чем я хочу ввести?

2) Это все еще не решает проблему регистрации возврата.

Если бы я набирал напрямую «Hello World», но с двумя случайными нажатиями клавиш, такими как: Hello Worpold

Даже если бы я использовал клавишу Backspace, она появлялась при входе: Hello World

Если бы я затем продолжал «ставить» или «печатать», он выводил бы: Hello Worpold

Знаете, как я могу это исправить, чтобы он принимал backspace, и знаете другие способы пропустить STDOUT.flush?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 08 июля 2010

В какой среде вы используете Ruby? Если вы не уверены, уточните с ruby -v

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

Я использую v1.8.6 в Windows XP

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

Сохраненный выше фрагмент кода в c: \ temp.rb и запустите его с ruby c:\temp.rb Клавиша Backspace работает, я могу исправить строки перед тем, как нажать Enter, чтобы подтвердить свой ввод.

1 голос
/ 08 июля 2010

Используйте модуль readline .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...