回覆列表
-
1 # 使用者5422508137144
-
2 # 埃夫隆
kbhit是一個C++函式,用於非阻塞地響應鍵盤輸入事件。
函式名:kbhit()
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0
用 法:int kbhit(void);
包含標頭檔案: include
在VC++6.0下為_kbhit()
功能及返回值同上;
kbhit是一個C++函式,用於非阻塞地響應鍵盤輸入事件。
函式名:kbhit()
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0
用 法:int kbhit(void);
包含標頭檔案: include
在VC++6.0下為_kbhit()
功能及返回值同上;
kbhit用來檢測鍵盤是否有按鍵,有則返回-1,沒有則返回0. 如果想知道按下了什麼鍵,應該用getch()來獲取(鍵值已經輸入緩衝區,getch從緩衝區中取得而非再從鍵盤輸入). 你給出的程式應該是一個不會正常退出的死迴圈吧(不管按什麼鍵),因為, while (!kbhit()) m = getch(); getch()會中斷等待你從鍵盤輸入,這個輸入不會被kbhit檢測到(此時中斷處理中),而待中斷處理完後(輸入一個字元後)再轉到kbhit,而此時又沒有輸入馬上再次轉到getch(). 我給一個我見過的用法: #include <stdio.h> void main() { char m; int i = 0; while (1) { while (!kbhit()) { i++; if (i == 8) i = 0; sound(i); } m = getch(); printf("m == %c\n", m); if (m == "s") { nosound(); break; } } getch(); } 參考文獻: others麻煩採納,謝謝!