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; } 
  1. 该计划开始
  2. 没有钥匙
  3. 第二次不执行
  4. 它在第一个循环中旋转

你按一个键:

  1. 第一个kbhit返回true
  2. 它进入第二个循环
  3. 还有一个关键的礼物
  4. 第二个kbhit返回true
  5. 程序退出

您需要在进入第二个循环之前删除第一个按键,您应该提示自己按一个键开始该程序。 或者你可以跳进第二个循环。