本文主要是介绍kbhit 用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.源自 头文件<conio.h> 2. 原型:extern int kbhit(void); 用法:#include <stdio.h> 功能:检测按键 说明:检测键盘是否有键按下。 如果有键按下,则返回对应键值;否则返回零。 kbhit不等待键盘按键。无论有无按键都会立即返回。 举例:
// kbhit.c #include <stdio.h>
main() { int i=0; clrscr(); while(!kbhit()) { clrscr(); printf("%05d",i++); } clrscr(); printf("End."); getchar(); return 0; }
3.kbhit()检测键盘是否有键按下,并工作在非阻塞模式下(即不等待状态,如果没有键按下,函数立即返回),如果有键按下,函数返回按键的ACSII码, 例子(来源MSDN): /* KBHIT.C: This program loops until the user
* presses a key. If _kbhit returns nonzero, a
* keystroke is waiting in the buffer. The program
* can call _getch or _getche to get the keystroke.
*/
#include <conio.h>
#include <stdio.h>
void main( void )
{
/* Display message until key is pressed. */
while( !_kbhit() )
_cputs( "Hit me!! " );
/* Use _getch to throw key away. */
printf( "/nKey struck was '%c'/n", _getch() );
_getch();
}
Output Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!!
Key struck was 'q'
利用此函数可实现在程序运行时按任意键继续的以功能,非常好用 如果程序是循环式的,可在循环程序中加入 while(!kbhit()) { char c; cout<<"按任意键继续程序执行,按q按退出程序"; cin>>c; if(c=='q') return 1; } 如果程序不是循环时的,而是非常长的一个程序串,就要通过多线程来实现,另外创建一个线程,在新线程中使用kbhit()函数,然后调用API函数SuspendThread 暂停主线程的运行就可以了
|
这篇关于kbhit 用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!