C语言之控制台读取上下左右方向键指令

首先,可以检测任何按键键值

// 首先,检测任何按键的代码
#include<stdio.h>
#include<conio.h>
int main()
{
char ch;
while((ch=getch())!=0x1B) /* ESC to quit */
{
printf("%d \n", ch);
}
}

分别是上下左右键的键值。

其次,控制台读取方向键指令

方法一

//捕捉键值
#include<stdio.h>
#include<conio.h>
int main()
{

int ch;
while( (ch=getch())!=0x1B ) /* Press ESC to quit... */
{
switch(ch)
{
case 0xE0:
switch(ch=getch())
{
case 72: printf("UP\n"); break;
case 80: printf("DOWN\n"); break;
case 75: printf("LEFT\n"); break;
case 77: printf("RIGHT\n"); break;
default:
break;
}
break;
default:
break;
}
}
}

方法二

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int main()
{
char key;
while(1)
{
// int t=1;
key=getch();
switch(key)
{
case -32:
key=getch();
switch(key)
{
case 72:
printf("UP\n");break;
case 80:
printf("DOWN\n");break;
case 75:
printf("LEFT\n");break;
case 77:
printf("RIGHT\n");break;
case -123:
printf("F11\n");break;
case -122:
printf("F12\n");break;
default:
// printf("%x,%d,%c\n",t,t,t);break;
printf("NULL");break;
}
break;
default:
// printf("%x,%d,%c\n",t,t,t);break;
printf("NULL");break;
}
}
return 0;
}

永不止步步 发表于01-11 13:38 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:345377个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号