在不干扰c中的程序执行的情况下进行输入

时间:2014-12-10 19:18:03

标签: c io

我想在循环中输入输入而不停止执行,即

`

   #include<stdio.h>
   #include<stdlib.h>
   #include<conio.h>
   int main()
   {
    char c;
      while(1)
      {

        if((c=getch())=='y')
                printf("yes\n") ;

        printf("no\n") ;
     }
      return 0;
   }

现在我希望无论输入如何都应无限打印“不”,如果我按y则应打印出来。然后再继续。这是可能的,任何IDEA!

1 个答案:

答案 0 :(得分:0)

由于这似乎是在Windows上并且您已经在使用旧的conio功能,因此可以使用_kbhit()加倍:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main()
{
  while(1)
  {
    if(_kbhit() && getch() == 'y')
      printf("yes\n");

    printf("no\n") ;
  }
  return 0;
}

_kbhit()“检查控制台是否有最近的击键,”the documentation表示。这意味着如果_kbhit()为真,getch()将能够立即获得一个角色,而不是阻止。