ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-07 19:02:02  阅读:249  来源: 互联网

标签:include return 读取 55 printf kbhit key 按键 C语言


C语言每日一练
2021年11月7日

文章目录

题目描述

实现无阻塞读取按键

分析

kbhit()是一个C和C++函数,用于非阻塞地响应键盘输入事件,为 “keyboard hit(键盘敲击)”的简写。kbhit_kbhit() 的弃用别名,尽管它依然受到支持,微软仍建议使用遵循 C 命名规则的 _kbhit()。

  • 函数原型int kbhit(void)
  • 功能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。
  • C++需要添加头文件: include <conio.h>
  • C语言不需包含额外头文件
  • 2020.7.9已弃用 kbhit(),需替换为_kbhit()。
  • 用法
    int main()
    {
    while(!kbhit()) //当没有键按下
    {
    printf(“无键按下\n”);
    }
    printf(“有键按下\n”);
    system(“pause”);
    return 0;
    }
    ——百度百科

代码实现

#include <stdio.h>
#include <string.h>
#include <conio.h>                        //kbhit()/_kbhit()
#include <Windows.h>                      //Sleep(ms)

int main()
{
    char key;
    while(1)
    {
        key = 0;
        if(_kbhit())                      //检测到按键按下
            key = getch();                //读取按键

        if(key != 0 && key != '\r')       //按键有效
            printf("按下的按键:%c\n", key);//打印按键

        if(key == '\r')                   //按下回车
        {
            printf("程序结束运行\n");       //退出
            return 0;
        }

        /* 功能区 */
        printf("请按下一个按键\n");         //提示
        Sleep(100);
    }
    return 0;
}

运行结果

在不影响打印的情况下识别按键(Sleep延时不能太大,否则按键按快了会识别失灵)

在这里插入图片描述

标签:include,return,读取,55,printf,kbhit,key,按键,C语言
来源: https://blog.csdn.net/weixin_43772810/article/details/121190513

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有