kbhit()双循环不能正常工作
只是为了好玩,我尝试用循环打印kbhit()
,以便按下按键后的程序无限打印该行,直到再次按下键盘。 它编译得很好,在运行时,只是给出了空白屏幕。 没有打印。 但是在单键按下结束程序。 虽然控制台没有关闭。
#include #include int main() { while(1) { if(kbhit()) { while(1) { if(kbhit()) { goto out; } printf("Print Ed Infinitum Until Key Press"); } } } out: return 0; }
我该如何解决这个问题?
int main(void){ while(1){ if(kbhit()){ getch(); while(1){ if(kbhit()){ getch(); goto out; } printf("Print Ed Infinitum Until Key Press\n"); } } } out: return 0; }
- 该计划开始
- 没有钥匙
- 第二次不执行
- 它在第一个循环中旋转
你按一个键:
- 第一个kbhit返回true
- 它进入第二个循环
- 还有一个关键的礼物
- 第二个kbhit返回true
- 程序退出
您需要在进入第二个循环之前删除第一个按键,您应该提示自己按一个键开始该程序。 或者你可以跳进第二个循环。