文章目录C语言每日一练
2021年11月7日
- 题目描述
- 分析
- 代码实现
- 运行结果
用C语言实现无阻塞读取键盘按键
分析代码实现kbhit()是一个C和C++函数,用于非阻塞地响应键盘输入事件,为 “keyboard hit(键盘敲击)”的简写。kbhit是 _kbhit() 的弃用别名,尽管它依然受到支持,微软仍建议使用遵循 C 命名规则的 _kbhit()。
- 函数原型:int kbhit(void)
- 功能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。
- C++需要添加头文件: include
- C语言不需包含额外头文件
- 2020.7.9已弃用 kbhit(),需替换为_kbhit()。
- 用法:
int main()
{
while(!kbhit()) //当没有键按下
{
printf(“无键按下n”);
}
printf(“有键按下n”);
system(“pause”);
return 0;
}
——百度百科
#include#include #include //kbhit()/_kbhit() #include //Sleep(ms) int main() { char key; while(1) { key = 0; if(_kbhit()) //检测到按键按下 key = getch(); //读取按键 if(key != 0 && key != 'r') //按键有效 printf("按下的按键:%cn", key);//打印按键 if(key == 'r') //按下回车 { printf("程序结束运行n"); //退出 return 0; } printf("请按下一个按键n"); //提示 Sleep(100); } return 0; }
运行结果
在不影响打印的情况下识别按键(Sleep延时不能太大,否则按键按快了会识别失灵)



