推荐答案
whoami1978
来自团队: 快乐助人2020.04.06
采纳率:84% 等级:50
已帮助:245万人
你的这个与系统有关,在windows下可用以下程序
#include
#include
int main()
{
int n1,n2;
char c;
c=getch();
while(c!=27) //esc 退出程序
{
if (c=='a') //'a' 注意大小写
{
n1++;
printf("n1=%d\n",n1);
}
if(c==1) //ctrl+A
{
n2+=2;
printf("n2=%d\n",n2);
}
c=getch();
}
return 0;
}追问:我想要的不是这样的,是那种,可以用作游戏上的,
就像贪吃蛇那样,我按了 ↑ 键,程序会有一定的反应,按了 ↓ 键也同样的那种,不是像您所弄的那样,会阻塞住程序直到我按下回车键,不过还是谢谢您的回答。
追答:这个一般可用(命令行方式)kbhit()+getch()实现,如:
#include
#include
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define ESC 27
int main()
{
int loop=1;
while(loop)
{
if (kbhit())
{
switch(getch())
{
case UP:
printf("up\n");
break;
case DOWN:
printf("down\n");
break;
case RIGHT:
printf("right\n");
break;
case LEFT:
printf("left\n");
break;
case ESC:
printf("bye!\n");
loop=0;
break;
}
}
}
return 0;
}
当然,winodws下,还可以用GetAsyncKeyState
若有消息处理函数,可用WM_KEY消息
C可以做任何软件的(很多大型游戏就是用C或C++写的)
追问:能详细讲解一下这个程序吗?
能加一下QQ吗?想在以后拜托您帮忙点解一下。
下面的就是我的QQ加好友链接。
fromId=45&fromSubId=1&subcmd=all&uin=1521713338
00分享举报
此回答由管理员 柳成荫2020 推荐为最佳回答。