kbhit 用法

转载 2008年03月19日 10:41:00

1.源自 头文件<conio.h>

 

2. 原型:extern int kbhit(void);
  
   用法:#include <stdio.h>
  
   功能:检测按键
  
   说明:检测键盘是否有键按下。
         如果有键按下,则返回对应键值;否则返回零。
         kbhit不等待键盘按键。无论有无按键都会立即返回。
  
   举例:

       // kbhit.c
      
       #include <stdio.h>

       main()
       {
         int i=0;
        
         clrscr();
        
         while(!kbhit())
         {
           clrscr();
           printf("%05d",i++);
         }
        
         clrscr();
         printf("End.");
        
         getchar();
         return 0;
       }
      

3.kbhit()检测键盘是否有键按下,并工作在非阻塞模式下(即不等待状态,如果没有键按下,函数立即返回),如果有键按下,函数返回按键的ACSII码,

例子(来源MSDN):

/* KBHIT.C: This program loops until the user
 * presses a key. If _kbhit returns nonzero, a
 * keystroke is waiting in the buffer. The program
 * can call _getch or _getche to get the keystroke.
 */

#include <conio.h>
#include <stdio.h>

void main( void )
{
       /* Display message until key is pressed. */
       while( !_kbhit() )
          _cputs( "Hit me!! " );

       /* Use _getch to throw key away. */
       printf( "/nKey struck was '%c'/n", _getch() );
       _getch();
}

Output

Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!!
Key struck was 'q' 

利用此函数可实现在程序运行时按任意键继续的以功能,非常好用

如果程序是循环式的,可在循环程序中加入

while(!kbhit())

{

            char c;

             cout<<"按任意键继续程序执行,按q按退出程序";

            cin>>c;

            if(c=='q')

                 return 1;

}

如果程序不是循环时的,而是非常长的一个程序串,就要通过多线程来实现,另外创建一个线程,在新线程中使用kbhit()函数,然后调用API函数SuspendThread 暂停主线程的运行就可以了


 

计算机基础win7的基本用法

-
  • 1970年01月01日 08:00

使用kbhit()和getch()无阻塞接收用户键盘输入

前言在我们平时控制台程序的编写过程中,一般情况下都是需要暂停控制台界面,等待用户输入数据之后,程序才会继续运行下去。但是某些情况下,我们希望在循环在用户输入一个按键时才响应特定程序。 常规做法是使用...
  • liuhhaiffeng
  • liuhhaiffeng
  • 2017-01-16 11:26:03
  • 2157

kbhit()函数

函数简介   函数名:kbhit()(VC++6.0下为_kbhit())   功 能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0   用 法:int kbhit(voi...
  • mal327
  • mal327
  • 2012-02-18 22:51:51
  • 3809

C_kbhit()和getch()函数的使用

C语言中kbhit()函数(conio.h):检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。 kbhit 是非阻塞函数,检测到用户按下某键时就会返回。与getchar()不同,程序运行到...
  • u011419209
  • u011419209
  • 2017-08-05 17:44:03
  • 1263

kbhit函数(讲解)

kbhit 编辑 目录 1函数简介 2程序示例 ▪ C语言 ▪ C++语言 1函数简介...
  • u013100446
  • u013100446
  • 2014-05-04 13:52:08
  • 6684

C语言捕获键盘敲击的方法kbhit

本文主要简单实现了对于c语言在程序中捕捉键盘敲击,进行程序控制的操作,以及典型通用的C语言菜单实现。...
  • u014271836
  • u014271836
  • 2015-11-25 12:00:41
  • 3874

在linux下面实现检测按键(Linux中kbhit()函数的实现)

//在linux下面实现检测按键(Linux中kbhit()函数的实现)#include #include #include #include #include #include ...
  • lxh1230119
  • lxh1230119
  • 2012-07-25 15:13:58
  • 7285

检测按键(Linux中kbhit()函数的实现)

我转载的网址来源http://hi.baidu.com/weihuili5/blog/item/3c9d1a012a84a30d738da527.html 编写过MS-DOS程序的人通常都会查找Li...
  • newyoung518
  • newyoung518
  • 2015-11-30 23:28:51
  • 1308

c语言kbhit()函数的介绍

  • 2008年12月18日 15:04
  • 733B
  • 下载

c++ _kbhit() 具体使用

FR:海涛高软(hunk Xu) QQ技术交流群:386476712
  • qq_15267341
  • qq_15267341
  • 2018-02-24 18:17:51
  • 72
收藏助手
不良信息举报
您举报文章:kbhit 用法
举报原因:
原因补充:

(最多只允许输入30个字)