在不停止C中的整个程序的情况下聆听按键

时间:2016-03-11 23:04:50

标签: c input keyboard

我正在尝试制作一个游戏,当按下某些键时对象会移动。但我想实现它,以便东西移动并且循环一直在运行。到目前为止,键盘输入功能如scanf和getchar都在等我按键,直到它们允许程序继续。如何在不停止程序的情况下监听按键操作(不使用线程)?

1 个答案:

答案 0 :(得分:0)

有一种方法可以使用循环来实现这一点 以下程序将在循环中执行其他操作,并且在每次传递中它将检查是否已按下某个键。然后,按下的键将存储到变量c

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

int main(void) {
    char c = '\0';

    while (1) { 
        if (kbhit()) { 
            c = getch(); 
        }
        /* If a key has been pressed */
        if (c != '\0') {
            /* Do something */
            c = '\0'; // and put it back to \0
        }

        /* Do something else */
    }

    return 0;
}

注意:此解决方案仅适用于Windows和其他操作系统,其中头文件&#34; conio.h &#34;可以包括