十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
函数kbhit()的功 能是: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0 。
创新互联成立于2013年,先为临汾等服务建站,临汾等地企业,进行企业商务咨询服务。为临汾企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
函数名:kbhit()(VC++6.0下为_kbhit())
用 法:int kbhit(void);
包含头文件: include conio.h
kbhit() 在执行时,检测是否有按键按下,有按下返回非0值,一般是1;没有按下返回0;
是非阻塞函数。
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数。
类似地
在Tc2.0中有一个处理键盘输入的函数bioskey();
int bioskey(int cmd);
当cmd为1时,bioskey()检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(任何按键码都不为0),但此时并不将检测到的按键码从键盘缓冲队列中清除。 是非阻塞参数。
当cmd为0时,bioskey()返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清除。如果键盘缓冲队列为空,则一直等到有键按下,才将得到的按键码返回。是阻塞调用。
函数名:kbhit()(VC++6.0下为_kbhit())
功
能及返回值:
检查当前是否有键盘输入,若有则返回一个非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结束
#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;
}
该函数的功能是 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0。它是非阻塞函数,即执行该函数后程序不会停下,而是进行执行。
其用法,一般是先用该函数判断是否有键盘输入,如果有则用getch等读键盘函数来读取该输入,如果没有键盘输入就继续执行程序。例如:
while(1){
//...
if(_kbhit())
{
ch=getch();
if(ch==27) break; //如果按了ESC键则跳出循环
}
}