首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kbhit(),双循环不能正常工作

kbhit(),双循环不能正常工作
EN

Stack Overflow用户
提问于 2013-06-24 00:52:49
回答 2查看 597关注 0票数 0

只是为了好玩,我试着打印有循环的kbhit(),这样程序在按键后会无限地打印一行,直到再次按下键盘。它编译得很好,当运行时,只会出现空白屏幕。没有指纹。但是在单次按键时,程序结束。但是控制台不会关闭。

代码语言:javascript
复制
#include <stdio.h>
#include <conio.h>

int main()
{
  while(1)
  {
    if(kbhit())
    {
      while(1)
      {
        if(kbhit())
        {
          goto out;
        }
        printf("Print Ed Infinitum Until Key Press");
      }
    }
  }
  out:
  return 0;
}

我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-24 02:03:14

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-06-24 01:04:37

  1. 程序开始
  2. No keys
  3. 第二次不执行
  4. ,它在第一个循环中旋转<

>G29

你按一个键:

  1. 第一个kbhit返回true
  2. 它进入第二个循环
  3. 还有一个密钥存在
  4. 第二个kbhit返回true

<>H119程序退出

在进入第二个循环之前,您需要移除第一个按键,并且您应该提示自己按下一个键来开始程序。或者你可以直接跳到第二个循环。

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

https://stackoverflow.com/questions/17263037

复制
相关文章

相似问题

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