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



我想在不停止执行的情况下循环获取输入,即

'

   #include<stdio.h>
   #include<stdlib.h>
   #include<conio.h>
   int main()
   {
    char c;
      while(1)
      {
        if((c=getch())=='y')
                printf("yesn") ;
        printf("non") ;
     }
      return 0;
   }

现在我希望无论输入如何,都应该无限打印"否",如果我按 y 应该打印 yes。然后继续从无到有。这可能吗,任何想法!

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

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main()
{
  while(1)
  {
    if(_kbhit() && getch() == 'y')
      printf("yesn");
    printf("non") ;
  }
  return 0;
}

根据文档,_kbhit()"检查控制台最近的击键"。这意味着,如果_kbhit()是真的,getch()将能够立即获得一个角色而不是阻止。

最新更新