繁体   English   中英

Ruby是否等效于C#Console.ReadKey()?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM