日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

_kbhit函数详解

發布時間:2024/3/13 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 _kbhit函数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

kbhit() 是一個C和C++函數,用于非阻塞地響應鍵盤輸入事件,為 “keyboard hit(鍵盤敲擊)”的簡寫。

kbhit 是 _kbhit() 的棄用別名,盡管它依然受到支持,微

函數名:kbhit()

功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0。

用 法:int kbhit(void);

C++語言包含頭文件: include <conio.h>。

2020.7.9 已棄用 kbhit(),需替換為_kbhit()。

C語言不需包含額外頭文件。

在VC++6.0下為_kbhit()。

功能及返回值同上。

軟仍建議使用遵循 C 命名規則的 _kbhit()

C語言

下面的代碼,如果沒有鍵盤輸入程序一直輸出“Hello World”,直到用戶按Esc結束。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#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;

}

C++語言

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#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()。

1

int?bioskey(int?cmd);

當參數 cmd 為 1 時,bioskey() 檢測是否有鍵按下。沒有鍵按下時返回0;有鍵按下時返回按鍵碼(

任何按鍵碼都不為0),但此時并不將檢測到的按鍵碼從鍵盤緩沖隊列中清除, 是非阻塞函數。

當參數 cmd 為 0 時,bioskey() 返回鍵盤緩沖隊列中的按鍵碼,并將此按鍵碼從鍵盤緩沖隊列中清

除。如果鍵盤緩沖隊列為空,則一直等到有鍵按下,才將得到的按鍵碼返回。是阻塞調用。

實際上,kbhit() 有點像?bioskey(1) 。

總結

以上是生活随笔為你收集整理的_kbhit函数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。