函數(shù)kbhit()的功 能是: 檢查當(dāng)前是否有鍵盤輸入,若有則返回一個(gè)非0值,否則返回0 。
創(chuàng)新互聯(lián)成立于2013年,先為臨汾等服務(wù)建站,臨汾等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為臨汾企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
函數(shù)名:kbhit()(VC++6.0下為_kbhit())
用 法:int kbhit(void);
包含頭文件: include conio.h
kbhit() 在執(zhí)行時(shí),檢測(cè)是否有按鍵按下,有按下返回非0值,一般是1;沒有按下返回0;
是非阻塞函數(shù)。
getch() 在執(zhí)行時(shí),檢測(cè)按下什么鍵,如果不按鍵該函數(shù)不返回;是阻塞函數(shù)。
類似地
在Tc2.0中有一個(gè)處理鍵盤輸入的函數(shù)bioskey();
int bioskey(int cmd);
當(dāng)cmd為1時(shí),bioskey()檢測(cè)是否有鍵按下。沒有鍵按下時(shí)返回0;有鍵按下時(shí)返回按鍵碼(任何按鍵碼都不為0),但此時(shí)并不將檢測(cè)到的按鍵碼從鍵盤緩沖隊(duì)列中清除。 是非阻塞參數(shù)。
當(dāng)cmd為0時(shí),bioskey()返回鍵盤緩沖隊(duì)列中的按鍵碼,并將此按鍵碼從鍵盤緩沖隊(duì)列中清除。如果鍵盤緩沖隊(duì)列為空,則一直等到有鍵按下,才將得到的按鍵碼返回。是阻塞調(diào)用。
函數(shù)名:kbhit()(VC++6.0下為_kbhit())
功
能及返回值:
檢查當(dāng)前是否有鍵盤輸入,若有則返回一個(gè)非0值,否則返回0
用
法:int
kbhit(void);
包含頭文件:
include
#include
int
main(void)
{
cprintf("Press
any
key
to
continue:");
while
(!kbhit())
/*
do
nothing
*/
;
cprintf("\r\nA
key
was
pressed...\r\n");
return
0;
}
下面的代碼,如果沒有鍵盤輸入程序一直輸出Hello
World,直到用戶按Esc結(jié)束
#include
#include
int
main(
void
)
{
char
ch;
while(
!kbhit()
)
{
cprintf("Hello
World\n");
if(
kbhit()
)
{
ch
=
getch();
if(
27
==
ch
)
break;
}
}
cprintf("End!\n");
system("pause");
return
0;
}
該函數(shù)的功能是 檢查當(dāng)前是否有鍵盤輸入,若有則返回一個(gè)非0值,否則返回0。它是非阻塞函數(shù),即執(zhí)行該函數(shù)后程序不會(huì)停下,而是進(jìn)行執(zhí)行。
其用法,一般是先用該函數(shù)判斷是否有鍵盤輸入,如果有則用getch等讀鍵盤函數(shù)來讀取該輸入,如果沒有鍵盤輸入就繼續(xù)執(zhí)行程序。例如:
while(1){
//...
if(_kbhit())
{
ch=getch();
if(ch==27) break; //如果按了ESC鍵則跳出循環(huán)
}
}