kbhit in C language

Last Updated : 15 Jan, 2026

The kbhit() functionality basically stands for the Keyboard Hit. This function deals with keyboard pressing. kbhit() is present in conio.h and used to determine if a key has been pressed or not. To use the kbhit function in your program, you should include the header file "conio.h". If a key has been pressed, then it returns a non-zero value; otherwise returns zero. 

Note: kbhit() is not a standard library function and should be avoided.

Example: C++ program to demonstrate use of kbhit()

CPP
#include <iostream.h>
#include <conio.h>

int main()
{
    while (!kbhit())
        printf("Press a key\n");

    return 0;
}

Output:

"Press a key" will keep printing on the 
console until the user presses a key on the keyboard.

Example: C++ program to fetch key pressed using kbhit()

CPP
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    char ch;
    while (1) {

        if ( kbhit() ) {

            // Stores the pressed key in ch
            ch = getch();

            // Terminates the loop
            // when escape is pressed
            if (int(ch) == 27)
                break;

            cout << "\nKey pressed= " << ch;
        }
    }
    return 0;
}

Output:

Prints all the keys that will be pressed on
 the keyboard until the user presses Escape key

Example: Using include conio.h file for kbhit function

C
#include <stdio.h>
#include <conio.h>
main()
{
    // declare variable
    char ch;
    printf("Enter key ESC to exit \n");
    // define infinite loop for taking keys
    while (1) {
        if (kbhit) {
            // fetch typed character into ch
            ch = getch();
            if ((int)ch == 27)
                // when esc button is pressed, then it will exit from loop
                break;
            printf("You have entered : %c\n", ch);
        }
    }
}
Output :
Enter key ESC to exit
You have entered : i
You have entered : P
You have entered : S
You have entered : w
You have entered : 7
You have entered : /
You have entered : *
You have entered : +

Note: kbhit() is non-standard (Windows-only). For cross-platform key detection, use cin (blocking) or libraries like ncurses/termios for non-blocking input.

Comment