kbhit()是一個C和C++函式,用於非阻塞地回響鍵盤輸入事件。其中文可譯為“鍵盤敲擊”(keyboard hit)。
基本介紹
- 中文名:kbhit()函式
- 函式名:kbhit()(VC++6.0下為_kbhit())
- 用法:int kbhit(void);
- 包含頭檔案:include <conio.h>
- 功能:檢查當前是否有鍵盤輸入
函式簡介,程式示例,C語言,C++語言,
函式簡介
函式名:kbhit()
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0。
用 法:int kbhit(void);
C++語言包含頭檔案: include <conio.h>。
C語言不需包含額外頭檔案。
在VC++6.0下為_kbhit()
功能及返回值同上;
程式示例
C語言
下面的代碼,如果沒有鍵盤輸入程式一直輸出Hello World,直到用戶按Esc結束。
#include<stdio.h>#include<stdlib.h>int main(void){char ch;while(ch!=27){printf("HelloWorld\n");if(kbhit())ch=getch();}printf("End!\n");system("pause");return 0;}
C++語言
#include<conio.h>#include<iostream>using namespace std;int main(){while(!kbhit())//當沒有鍵按下{cout<<"無鍵按下"<<endl;}cout<<"有鍵按下"<<endl;//有鍵按下時輸出這system("pause");}
kbhit()在執行時,檢測是否有按鍵按下,有按下返回非0值,沒有按下則返回0,是非阻塞函式;
不同於getch()的在執行時,檢測按下什麼鍵,如果不按鍵該函式不返回,也就不進行下一步操作,是阻塞函式。
類似地,在TC2.0中有一個處理鍵盤輸入的函式bioskey();
int bioskey(int cmd);
當參數cmd為1時,bioskey()檢測是否有鍵按下。沒有鍵按下時返回0;有鍵按下時返回按鍵碼(
任何按鍵碼都不為0),但此時並不將檢測到的按鍵碼從鍵盤緩衝佇列中清除。 是非阻塞函式;
當參數cmd為0時,bioskey()返回鍵盤緩衝佇列中的按鍵碼,並將此按鍵碼從鍵盤緩衝佇列中清
除。如果鍵盤緩衝佇列為空,則一直等到有鍵按下,才將得到的按鍵碼返回。是阻塞調用。
實際上,kbhit()有點像bioskey(1)