[英]Ruby equivalent to C# Console.ReadKey()?
成为最近的中级Rubyist,所以我一直在编写简单的Ruby控制台程序以在irb
运行。
我已经在C#中制作了大量的控制台程序,而且我很好奇默认情况下Ruby或gem中是否有任何方法可以做到与C#的Console.ReadKey类似的事情? 我知道FFI gem的 keybd_event
方法,但是对于简单的程序来说似乎有点多。
为此使用了IO#getc
。 但是请注意,控制台可能具有输入缓冲,从而阻止您的代码立即接收到字符。 所需的冲洗力量(如⏎)或直接低级别stty
设置,取决于你所需要完成的任务。
这是Matz自己提供的示例 :
缺省情况下,这就是UNIX getc。 您可以:
#!/usr/bin/ruby begin system("stty raw -echo") str = STDIN.getc ensure system("stty -raw echo") end p str
还有一个gem HighLine
提供该功能:
require "highline/system_extensions"
include HighLine::SystemExtensions
c = get_character
print c.chr
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.