正如大多数人所知道的那样,getch会等待,直到用户点击一个键,然后返回值。有没有一种方法可以只检查用户当前是否正在按键?这是我想要做的:
while(1){
char x = getch();
if (x){
//blah
}
else if(y == true){
//blah
}
}有什么建议吗?
发布于 2010-10-18 03:59:29
这里有kbhit()函数(如果您使用的是微软的库,也可以使用_kbhit() )。
MSDN:http://msdn.microsoft.com/en-us/library/58w7c94c(VS.80).aspx
如果按下了某个键,则_kbhit返回一个非零值。否则,返回0。
编辑:正如一些评论者指出的那样,这不是标准的。
发布于 2010-10-18 06:18:49
如果您只是想暂停脚本直到按下某个键,那么getch可以工作,但是如果您不想让他们按下的字符出现在屏幕上(或者您不关心他们按下了哪个键),那么可以使用getch
system("pause > NUL");它调用Windows的"pause“命令并路由显示的文本和输入(通常它会说”按任意键继续...“)掉进了一个空洞的深渊。
另一种方法是使用像GetAsyncKeyState()这样的函数并遍历所有输入代码,以查看当前是否按下了任何键。如果您正在尝试运行处理循环,并且希望在用户按下特定的键(例如,Escape)时中断,则此方法的效果要好得多。使用它来查看用户是否正在按任何键都会浪费大量的处理能力。
https://stackoverflow.com/questions/3955007
复制相似问题