c++ 如何随时接受键盘按键

比如说我编出了一个贪食蛇游戏,现在只能用getch()函数进行每次按键才能移动,而不是通过时间控制,我知道如何进行时间控制,但是不知道如何随时接受键盘按键而作出相应反应。... 比如说我编出了一个贪食蛇游戏,现在只能用getch()函数进行每次按键才能移动,而不是通过时间控制,我知道如何进行时间控制,但是不知道如何随时接受键盘按键而作出相应反应。 简而言之我需要一个函数随时接受键盘上的按键而随时作出反应,而不是程序知道你要按键了才能接受按键。。 求大神 展开
 我来答
百度网友5ef623c
推荐于2017-10-11 · TA获得超过151个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:123万
展开全部
近来我也在搞这个 呼呼
下面是控制的代码
#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词条吧 :)

参考资料: 百度百科

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式