我正在尝试用Ruby制作一个简单的基于终端的游戏,目前我正试图想出一种从终端读取输入的方法。
gets
我已经知道我需要将终端置于非规范模式,我假设我可以通过调用 $stdin.ioctl 问题是,我不确定应该传递什么参数或标志,文档和搜索只会提供有关底层C函数的信息。
$stdin.ioctl
有人能告诉我应该打什么电话吗 $stdin.iconl 与?我在OSX Leopard上使用Terminal.app/tcsh。
$stdin.iconl
%x{stty -icanon -echo} key = STDIN.read(1)
最简单的答案是:将IO封装在%x{stty-raw echo}和%x{st ty-raw echo}中,以使用stty更改模式。
您可能希望执行并确保有一个退出处理程序,以确保在退出时将模式设置回原位。
--马库斯Q