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

发布网友 发布时间:2022-04-22 21:28

我来回答

4个回答

热心网友 时间:2022-06-18 20:39

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);
}

热心网友 时间:2022-06-18 20:39

下面程序探测方向键编码(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 下

热心网友 时间:2022-06-18 20:39

//你好,在接收方向键时只需获取键盘的按键键值,然后根据不同的键值进行不同的处理即可
//一个简单且完整的示例如下
#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;
}

热心网友 时间:2022-06-18 20:40

用asc码键盘上的键都有对应的asc码

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com