我正在为机器人编写应用程序。
应用程序所需的UI在下面的伪代码中描述:
while(true){
if (spacebar is not pressed){
//do something
}
else{
sleep(1); //wait for a second
}
}
如果我使用cin或其他控制台输入读取功能,那么它将等待用户按某事。我如何确保它不等待获得任何输入?
我正在使用Ubuntu。但我不希望它是特定于操作系统的。
答案here似乎是特定于操作系统的。
答案 0 :(得分:1)
与“标准输入/输出”流概念相比,您要求的内容与硬件(按键/按键释放)相当接近。因此,您的实现必须是特定于操作系统的。已经说过要使用的库是curses [1],它已经存在了很长时间,并且是很多Un * x平台的标准配置。 GNU ncurses风格几乎可以编译所有这些,它几乎在所有Linux环境中都是标准安装,默认情况下它没有安装,你可以找到它。它也适用于Windows(cygwin),os / 2和一堆嵌入式系统等。所以你应该能够使用诅咒编写一个相当便携的软件,做你想要的。
答案 1 :(得分:0)
你所要求的并不是很清楚。在if
,是
条件基于是否输入了空格字符,
或者用户当前是否按住空格键?在
第一种情况,你需要像curses
这样的东西(便携式)
这个库确实获得了输入的每个字符,
没有回声)。在第二,我不认为有
便携式解决方案。即使是非便携式,您也可能无法进行
如果您的程序正在从终端窗口读取,请获取它
(例如xterm);这种信息通常只存在
作为窗口事件,当您在程序中创建窗口时。