栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言每日一练——第55天:实现无阻塞读取键盘按键

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言每日一练——第55天:实现无阻塞读取键盘按键

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延时不能太大,否则按键按快了会识别失灵)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号