📜  kbhit用C语言(1)

📅  最后修改于: 2023-12-03 15:17:08.074000             🧑  作者: Mango

使用 kbhit 在 C 语言中读取键盘输入

在 C 语言中,要读取键盘输入通常使用 getch()scanf() 等函数。但是他们都会阻塞程序的执行,直到接收到输入结束。如果程序需要在接收输入的同时处理其他事情,那么就需要使用非阻塞式的方法来读取键盘输入。这时,就需要用到 kbhit() 函数。

基本介绍

kbhit() 函数是 C 语言中的一个函数,位于 conio.h 头文件中,用于判断是否有键盘输入。当有键盘输入时,该函数会返回一个非零值;否则,返回零。

使用该函数可以实现非阻塞读取键盘输入的操作。

示例程序

下面是一个简单的示例程序,用于演示如何使用 kbhit() 函数读取键盘输入。

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

int main()
{
    while (1)
    {
        if (kbhit())
        {
            int ch = getch();
            printf("You press %d\n", ch);
        }
        printf("Processing...\n");

        Sleep(100);
    }
    return 0;
}

在该示例程序中,使用了一个死循环,并在循环内使用 kbhit() 函数判断是否有键盘输入。如果有,则使用 getch() 函数读取输入的字符,并将其打印到屏幕上。

如果没有键盘输入,则打印 "Processing..." 信息,然后使用 Sleep() 函数暂时停止程序的执行 100 毫秒,以防止程序占用过多的 CPU 资源。

注意事项
  • kbhit() 函数只能读取到单个键盘按键,不能同时读取多个按键。
  • 在使用 kbhit() 函数之前,需要先调用 getch() 函数,否则可能出现错误。
  • 在使用 kbhit() 函数后,需要使用 getch() 函数读取键盘输入,以避免残留输入的情况。