处理单个字符用户输入而无需按Enter键

时间:2013-10-15 11:04:54

标签: ruby input keypress

我正在编写一个微小的交互式命令行工具,提示用户按下数字键。它应该在第一次按键/输入后直接继续。

目前我这样做是为了捕获用户的输入

puts "yes, please ..."
gets.chomp

...但是这需要按“enter”确认输入。如何在第一次按键后立即返回输入值?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

puts 'Do you want to proceed? y/n'

loop do
  system("stty raw -echo")
  c = STDIN.getc
  system("stty -raw echo")

  case c
  when 'y'
    puts 'Yes'
    break
  when 'n'
    puts 'No'
    break
  else
    puts 'Please type "y" or "n"'
  end
end
相关问题