首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getch替代方案

getch替代方案
EN

Stack Overflow用户
提问于 2010-10-18 03:54:58
回答 2查看 2K关注 0票数 1

正如大多数人所知道的那样,getch会等待,直到用户点击一个键,然后返回值。有没有一种方法可以只检查用户当前是否正在按键?这是我想要做的:

代码语言:javascript
复制
while(1){
char x = getch();
if (x){
//blah
}
else if(y == true){
//blah
}
}

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2010-10-18 03:59:29

这里有kbhit()函数(如果您使用的是微软的库,也可以使用_kbhit() )。

MSDN:http://msdn.microsoft.com/en-us/library/58w7c94c(VS.80).aspx

如果按下了某个键,则_kbhit返回一个非零值。否则,返回0。

编辑:正如一些评论者指出的那样,这不是标准的。

票数 2
EN

Stack Overflow用户

发布于 2010-10-18 06:18:49

如果您只是想暂停脚本直到按下某个键,那么getch可以工作,但是如果您不想让他们按下的字符出现在屏幕上(或者您不关心他们按下了哪个键),那么可以使用getch

代码语言:javascript
复制
system("pause > NUL");

它调用Windows的"pause“命令并路由显示的文本和输入(通常它会说”按任意键继续...“)掉进了一个空洞的深渊。

另一种方法是使用像GetAsyncKeyState()这样的函数并遍历所有输入代码,以查看当前是否按下了任何键。如果您正在尝试运行处理循环,并且希望在用户按下特定的键(例如,Escape)时中断,则此方法的效果要好得多。使用它来查看用户是否正在按任何键都会浪费大量的处理能力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3955007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档