-
kbhit
鎖定
kbhit( ) 是一個C和C++函數,用於非阻塞地響應鍵盤輸入事件,為 “keyboard hit(鍵盤敲擊)”的簡寫。
kbhit 是 _kbhit( ) 的棄用別名,儘管它依然受到支持,微軟仍建議使用遵循 C 命名規則的 _kbhit( )
[1]
。
- 中文名
- 鍵盤敲擊
- 外文名
- kbhit
- 函數名
- kbhit(VC++6.0下為_kbhit)
- 用 法
- int kbhit(void);
- 包含頭文件
- include
- 功 能
- 檢查當前是否有鍵盤輸入
kbhit函數簡介
函數名:kbhit( )
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0。
用 法:int kbhit(void);
2020.7.9 已棄用 kbhit( ),需替換為_kbhit( )。
C語言不需包含額外頭文件。
在VC++6.0下為_kbhit( )。
功能及返回值同上。
kbhit程序示例
kbhitC語言
下面的代碼,如果沒有鍵盤輸入程序一直輸出“Hello World”,直到用户按Esc結束。
#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; }
kbhitC++語言
#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( )。
int bioskey(int cmd);
當參數 cmd 為 1 時,bioskey( ) 檢測是否有鍵按下。沒有鍵按下時返回0;有鍵按下時返回按鍵碼(任何按鍵碼都不為0),但此時並不將檢測到的按鍵碼從鍵盤緩衝隊列中清除, 是非阻塞函數。
當參數 cmd 為 0 時,bioskey( ) 返回鍵盤緩衝隊列中的按鍵碼,並將此按鍵碼從鍵盤緩衝隊列中清
除。如果鍵盤緩衝隊列為空,則一直等到有鍵按下,才將得到的按鍵碼返回。是阻塞調用。
實際上,kbhit( ) 有點像 bioskey(1) 。
- 參考資料
-
- 1. kbhit | Microsoft Docs .Microsoft Docs.2019-12-16[引用日期2021-10-02]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:34次歷史版本
- 最近更新: 亡命听