c++ 如何随时接受键盘按键
比如说我编出了一个贪食蛇游戏,现在只能用getch()函数进行每次按键才能移动,而不是通过时间控制,我知道如何进行时间控制,但是不知道如何随时接受键盘按键而作出相应反应。...
比如说我编出了一个贪食蛇游戏,现在只能用getch()函数进行每次按键才能移动,而不是通过时间控制,我知道如何进行时间控制,但是不知道如何随时接受键盘按键而作出相应反应。 简而言之我需要一个函数随时接受键盘上的按键而随时作出反应,而不是程序知道你要按键了才能接受按键。。 求大神
展开
展开全部
近来我也在搞这个 呼呼
下面是控制的代码
#include<iostream>
using namespace std;
#include<conio.h>//内含有kbhit()函数 在VC里面有这个头文件
int main(){
while(!kbhit())//当没有键按下
{
cout<<"无键按下操作"<<endl;
}
cout<<"有键按下"<<endl;//有键按下时输出这
system("pause");
return 1;
}
以下是百科里面的词条;
希望可以帮到你**嘿嘿
C++语言
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
while(!kbhit()) //当没有键按下
{
cout<<"无键按下"<<endl;
}
cout<<"有键按下"<<endl; //有键按下时输出这
system("pause");
}
kbhit() 在执行时,检测是否有按键按下,有按下返回非0值,一般是1
没有按下返回0;是非阻塞函数
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数
类似地
在Tc2.0中有一个处理键盘输入的函数bioskey();
int bioskey(int cmd);
当cmd为1时,bioskey()检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(
任何按键码都不为0),但此时并不将检测到的按键码从键盘缓冲队列中清除。 是非阻塞参数。
当cmd为0时,bioskey()返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清
除。如果键盘缓冲队列为空,则一直等到有键按下,才将得到的按键码返回。是阻塞调用。
//个人理解kbhit()有点像bioskey(1)
具体搜索bioskey词条吧 :)
下面是控制的代码
#include<iostream>
using namespace std;
#include<conio.h>//内含有kbhit()函数 在VC里面有这个头文件
int main(){
while(!kbhit())//当没有键按下
{
cout<<"无键按下操作"<<endl;
}
cout<<"有键按下"<<endl;//有键按下时输出这
system("pause");
return 1;
}
以下是百科里面的词条;
希望可以帮到你**嘿嘿
C++语言
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
while(!kbhit()) //当没有键按下
{
cout<<"无键按下"<<endl;
}
cout<<"有键按下"<<endl; //有键按下时输出这
system("pause");
}
kbhit() 在执行时,检测是否有按键按下,有按下返回非0值,一般是1
没有按下返回0;是非阻塞函数
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数
类似地
在Tc2.0中有一个处理键盘输入的函数bioskey();
int bioskey(int cmd);
当cmd为1时,bioskey()检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(
任何按键码都不为0),但此时并不将检测到的按键码从键盘缓冲队列中清除。 是非阻塞参数。
当cmd为0时,bioskey()返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清
除。如果键盘缓冲队列为空,则一直等到有键按下,才将得到的按键码返回。是阻塞调用。
//个人理解kbhit()有点像bioskey(1)
具体搜索bioskey词条吧 :)
参考资料: 百度百科
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询