Ruby:gets.chomp 1 keypress

时间:2016-07-30 05:33:59

标签: ruby

我想提示用户按ESC或任何其他键。按ESC将停止所有进一步的操作。按ENTER(或任何其他键)将执行其他操作。

按ENTER键正常,但获取等待用户实际按Enter键。让它变得不友善。

有没有办法在用户进行一次按键后继续?

puts "Press Enter to continue or ESC to quit..."
decision = gets.chomp

if decision != "^["
    then puts "do this stuff"
else
    puts "bye"
end

1 个答案:

答案 0 :(得分:1)

我相信你几乎不明白你在做什么。首先,它取决于您使用的操作系统。我知道没有一种“标准”机制适用于所有操作系统。

辅助,与字符串的比较,包含两个字符<a href="#box1">LINK1</a> <a href="#box2">LINK2</a> <div id="box1"> content </div> <div id="box2"> content </div> '^',与 ESC 的检查不相同。

最后但并非最不重要:'['正在缓冲输入,除非按下。您需要阅读一个字符IO#getc

以下是unix控制台的工作代码:

gets