如何获分辨键盘是输入了方向键,用的是C语言!

如何获分辨键盘是输入了方向键,用的是C语言!用的是vc++... 如何获分辨键盘是输入了方向键,用的是C语言!
用的是vc++
展开
 我来答
tattackor
推荐于2017-10-12 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:859万
展开全部

1、一般是使用getch获取
方向键(←): 0xe04b
方向键(↑): 0xe048
方向键(→): 0xe04d
方向键(↓): 0xe050
一个方向键要用两个getch才能把它的数据获取完.
然后对应着两个字符数据, 一个当高位, 一个当低位, 就可以判断按下的是什么键, 如:
char ch = getch();
if(ch == 0xe000) //如果高位相等
{

ch = getch(); //那么再获取一个
if (ch == 0x004b) //如果低位也相同(和方向键左一样)
.... //要执行的动作.

}
else //如果不是, 把这个字符吸收了.
getch()

2、例程:

#include <stdio.h>
#include <stdlib.h>
main()
{
int key,key2;
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
}
金色潜鸟
2012-08-28 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5521万
展开全部
下面程序探测方向键编码(16进制和10进制)。
按1个键,读得2个码:
#include <stdio.h>
#include <stdlib.h>
main()
{
int key,key2;
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
}

0xe0,0x48 上
0xe0,0x4b 左
0xe0,0x4d 右
0xe0,0x50 下
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr_wid
2012-08-28 · TA获得超过181个赞
知道答主
回答量:34
采纳率:0%
帮助的人:44.5万
展开全部
//你好,在接收方向键时只需获取键盘的按键键值,然后根据不同的键值进行不同的处理即可
//一个简单且完整的示例如下
#include<stdio.h>
#include<conio.h>

int main()
{
int key; //定义key,用于接收按键键值

while(key = getch()) //等待按键
{
switch(key)
{
case 72: printf("你按下了方向键上\n"); break;
case 80: printf("你按下了方向键下\n"); break;
case 75: printf("你按下了方向键左\n"); break;
case 77: printf("你按下了方向键右\n"); break;
case 27: return 0; //键值27为Esc键,当按下这个键时退出程序
}
}

return 0;
}
追问
方向键也是有ascii码?77是字符M啊!
追答
你好,我表示没有说过这是书上所说的标准ascii码,键盘上的每个按键都对应着一个值,这个值简称为键值吧,我给你写了一个键盘键值的查看C代码,你可以试下:

//键盘键值查看(C语言)
#include
#include

int main()
{
int key; //定义key,用于接收按键键值

while(key = getch())
{ //在取方向键键值时忽略输出的224
printf("%d\n", key);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HH矢羽HH
2012-08-28
知道答主
回答量:44
采纳率:0%
帮助的人:11万
展开全部
用asc码键盘上的键都有对应的asc码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式