c-在不按回车键的情况下从键盘读取输入



可能重复:
C/C++:从标准输入中捕获字符,而无需等待按下回车键
如何在C中的Linux上进行非阻塞控制台I/O?

我正在尝试用C语言编写一个程序,该程序处于恒定循环中,但我需要能够在每个循环开始时从键盘接收输入,或者在没有按键的情况下继续。

getchar((和_getch((是不够的,因为它们都在等待输入。如果有人知道一个类似_getch但不等待输入的函数,我们将不胜感激。

没有C标准的方法来做你想做的事情(在用户不点击回车键的情况下从键盘上捕捉击键(,你必须特定于平台。<conio.h>应该有你在Windows上需要的东西,你需要curses在Linux上才能得到。(我怀疑curses也适用于Mac,但不要引用我的话(

在Windows上,kbhit()不等待任何输入,它只在您进行测试的那一刻按下一个键时返回。如果你也需要知道密钥是什么,那么你可以将其与getch() 结合起来

类似于:

while(countdown++ <= 1000){  // give a second to hit something
    if(b=kbhit())            // if the user presses a key
        break;               // leave the loop early
    Sleep(1);                // else, sleep for 1 ms and try again
}
if (b != 0)          // if something was pressed
    printf("The key was %dn", getch());

相关内容

  • 没有找到相关文章

最新更新