kbhit() 是一个C和C++函数,用于非阻塞地响应键盘输入事件,为 “keyboard hit(键盘敲击)”的简写。

kbhit 是 _kbhit() 的弃用别名,尽管它依然受到支持,微

函数名:kbhit()

功能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。

用 法:int kbhit(void);

C++语言包含头文件: include <conio.h>。

2020.7.9 已弃用 kbhit(),需替换为_kbhit()。

C语言不需包含额外头文件。

在VC++6.0下为_kbhit()。

功能及返回值同上。

软仍建议使用遵循 C 命名规则的 _kbhit()

C语言

下面的代码,如果没有键盘输入程序一直输出“Hello World”,直到用户按Esc结束。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#include<stdio.h>

#include<stdlib.h>

int main()

{

    char ch;

    while(ch != 27)

    {

    printf("Hello World\n");

        if(kbhit())

            ch = getch();

    }

    printf("End!\n");

    system("pause");

    return 0;

}

C++语言

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include<conio.h>

#include<iostream>

using namespace std;

int main()

{

    while(!kbhit()) //当没有键按下

    {

            cout << "无键按下" << endl;

    }

        cout << "有键按下" << endl;

        system("pause");

        return 0;

}

kbhit() 在执行时,检测是否有按键按下,有按下则返回非0值,没有按下则返回0,是非阻塞函数;

而 getch() 在执行时,检测按下什么键,如果不按键该函数不返回,也就不进行下一步操作,是阻塞函数。

类似地,在 TC2.0 中有一个处理键盘输入的函数 bioskey()。

1

int bioskey(int cmd);

当参数 cmd 为 1 时,bioskey() 检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(

任何按键码都不为0),但此时并不将检测到的按键码从键盘缓冲队列中清除, 是非阻塞函数。

当参数 cmd 为 0 时,bioskey() 返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清

除。如果键盘缓冲队列为空,则一直等到有键按下,才将得到的按键码返回。是阻塞调用。

实际上,kbhit() 有点像 bioskey(1) 。

_kbhit函数详解相关推荐

  1. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

  2. 【FFmpeg】函数详解(三)

    FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...

  3. 【FFmpeg】函数详解(二)

    FFmpeg函数详解 9.av_dump_format 10.avio_open 11.avformat_write_header 12.avcodec_send_frame 13.avcodec_r ...

  4. 【FFmpeg】函数详解(一)

    FFmpeg函数详解 一.错误码相关 1.AVERROR 2.av_strerror 3.其他错误码解释 二.编解码 1.获取编解码器 2.申请.释放上下文环境 3.打开编码器avcodec_open ...

  5. 【ES6】Generator函数详解

    [ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...

  6. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  7. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  8. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

  9. scanf函数详解与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数,遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

最新文章

  1. 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解
  2. 互联网协议 — PPP 点对点协议
  3. Python Flask web 项目零改动迁移至阿里云函数计算
  4. 【小白学习C++ 教程】十五、C++ 中的template模板和泛型
  5. 2020\Simulation_1\2.约数个数
  6. 2021-08-05学习日记
  7. Safari浏览器不支持let声明的解决方式
  8. [转载] python学习笔记
  9. react 组件传值
  10. 魅族POP2s真无线耳机正式发布:售价299元!
  11. 谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜丨Demo可用
  12. linux安装redis 和 使用
  13. 基于Springboot的医院药品管理系统的设计与实现.zip(论文+项目源码)
  14. 小程序 实现语音播放功能
  15. java事务和分布式事务详解
  16. 什么邮箱的归档功能好用?
  17. 这么多人问的JVM的垃圾回收到底是个啥?
  18. Flink滚动窗口函数的开窗起始时间计算规则
  19. 【蓝桥杯选拔赛真题54】Scratch小猫钓鱼 少儿编程scratch图形化编程 蓝桥杯选拔赛真题讲解
  20. 哔咔服务器维护时间,哔咔

热门文章

  1. 操作系统的功能和意义
  2. 基于JAVA彩票在线购买系统计算机毕业设计源码+系统+lw文档+部署
  3. 百家争鸣的低代码平台
  4. Java基础23 网络编程 socket套接字流 TCP传输总结
  5. java资源文件路径_Java 中获取资源(文件)的路径问题总结
  6. 当幸福来敲门 经典语录
  7. python average函数详解_Python内置函数详解——总结篇
  8. 一文搞懂 Python 私有属性 私有方法
  9. 修改linux系统的root用户密码,linux系统下修改root用户密码
  10. 为什么正常单据记账没有数据_正常单据记账怎么没有记录U8存货核算?正常 – 手机爱问...