C语言中kbhit()函数(conio.h):检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。
kbhit 是非阻塞函数,检测到用户按下某键时就会返回。与getchar()不同,程序运行到kbhit()语句时程序不会暂停,而是会继续运行。多次使用kbhit()时,当用户按下一次按键时,kbhit()在之后返回的都是1,这时候可以搭配getch()函数。
C语言中getch()函数(conio.h):从控制台无回显地取一个字符(在windows平台下从控制台无回显地取一个字符,在linux下是有回显的),返回从键盘上读取到的字符。
getch()与getchar()函数的区别是,getch()在检测到用户输入一个字符后就会继续程序,不需要按回车键,并且字符不会在屏幕上显示。
下面是一个实例,用户每按一次任意按键,屏幕都会打印一句:"The user presses a key.",下面是程序源代码:
#include<stdio.h>
#include<conio.h>
int main()
{
while(1){
if(kbhit()){
printf("The user presses a key.\n");
getch();
}
}
return 0;
}