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()
#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()
#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 keyExample: Using include conio.h file for kbhit function
#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.