关于kbhit()函数的问题
答案:1 悬赏:80 手机版
解决时间 2021-11-16 16:59
- 提问者网友:刺鸟
- 2021-11-16 04:01
关于kbhit()函数的问题
最佳答案
- 五星知识达人网友:西风乍起
- 2021-11-16 04:41
if(kbhit()!=0) 当程序开始运行时,还没来得及按键,kbhit() 已经执行了,返回值是 没有按。
没有按,返回0,就不会进入 if(){...}
去掉你的if 语句,改成:
-------------------------
while(kbhit()!=0){}; //等待按键
a=getch(); /读取按了的键
switch(a){};
-----------
如果一个键会产生2个值的,你要读2次,例如:
a=getch();
if (a == 0xe0) {a = getch();}追问虽然看懂了你的更改,可是不明白这和我的问题有什么关系,可以再解释一下吗?追答你的问题是
if(kbhit()!=0)
{
这一句循环是后来加的-->while(kbhit()!=0) a=getch();
....
}
如果没有在外面加一层循环,你跟本进不了条件语句内部,也就不可能执行“后来加的”。
除非 反复循环调 你的 button() 函数。
与其那样,不如按我说的方法,简单,简便,简捷。
没有按,返回0,就不会进入 if(){...}
去掉你的if 语句,改成:
-------------------------
while(kbhit()!=0){}; //等待按键
a=getch(); /读取按了的键
switch(a){};
-----------
如果一个键会产生2个值的,你要读2次,例如:
a=getch();
if (a == 0xe0) {a = getch();}追问虽然看懂了你的更改,可是不明白这和我的问题有什么关系,可以再解释一下吗?追答你的问题是
if(kbhit()!=0)
{
这一句循环是后来加的-->while(kbhit()!=0) a=getch();
....
}
如果没有在外面加一层循环,你跟本进不了条件语句内部,也就不可能执行“后来加的”。
除非 反复循环调 你的 button() 函数。
与其那样,不如按我说的方法,简单,简便,简捷。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯