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 暂停主线程的运行就可以了


 

相关文章推荐

kbhit()函数

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

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

本文主要简单实现了对于c语言在程序中捕捉键盘敲击,进行程序控制的操作,以及典型通用的C语言菜单实现。...

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

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

kbhit函数(讲解)

kbhit 编辑 目录 1函数简介 2程序示例 ▪ C语言 ▪ C++语言 1函数简介...

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

http://hi.baidu.com/jtntiivtemcnsue/item/90689ce172ee912c5a7cfb1b   编写过MS-DOS程序的人通常都会查找Linux下等同于kb...

FFmpeg and AAC Encoding Guide

= FFmpeg and AAC Encoding Guide =   [[PageOutline(2-3, Contents)]]   [[http://en.wikipedia.org...

:-1: 错误:cannot open output file release/first.exe: Permission denied

打开任务管理器,可以看到first.exe 正在执行,结束执行就可以了.

c语言kbhit()函数的介绍

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

linux下kbhit()使用

最近写一段程序,因为刚学linux学习网络编程,编个聊天软件(有一个功能就是可以选择让对方显示自己的输入过程),因为打算在输入字符前面加上昵称,因此我计划是通过判断键盘输入来确定是否要输入信息,在网上...

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

我转载的网址来源http://hi.baidu.com/weihuili5/blog/item/3c9d1a012a84a30d738da527.html 编写过MS-DOS程序的人通常都会查找Li...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kbhit 用法
举报原因:
原因补充:

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