首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于方向键up的有关问题(小弟我感觉很怪,和ascll码不一样)

2012-09-24 
关于方向键up的问题(我感觉很怪,和ascll码不一样)int getkey(){int key,lo,hikeybioskey(0)lokey&0x00

关于方向键up的问题(我感觉很怪,和ascll码不一样)
int getkey()
{
int key,lo,hi;
key=bioskey(0);
lo=key&0x00ff;
hi=(key&0xff00)>>8;
return((lo==0) ? hi+256:lo);
}
当我输入up键时,key的数值,我感觉很怪异:一%x输出时4800,以%d输出时时18432;
但是我看ascll码表,上面up的值不是这样的呀!

[解决办法]
ASCII是一套信息传输人编码,理论上跟硬件没有任何关系;而键盘扫描码跟“键盘”这一硬件设备是直接对应的,他们原本就不一样啊。
另外ASCII码中有UP吗?我怎么没找到?
http://www.asciitable.com/
[解决办法]

探讨

ASCII是一套信息传输人编码,理论上跟硬件没有任何关系;而键盘扫描码跟“键盘”这一硬件设备是直接对应的,他们原本就不一样啊。
另外ASCII码中有UP吗?我怎么没找到?
http://www.asciitable.com/

[解决办法]
探讨

ASCII是一套信息传输人编码,理论上跟硬件没有任何关系;而键盘扫描码跟“键盘”这一硬件设备是直接对应的,他们原本就不一样啊。
另外ASCII码中有UP吗?我怎么没找到?
http://www.asciitable.com/

[解决办法]
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码,高8位存放该键的扫描码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。
[解决办法]
仅供参考
C/C++ code
//The _getch function reads a single character from the console without echoing.//Function can not be used to read CTRL+Break.//When reading a function key or an arrow key,//_getch must be called twice; the first call returns 0 or 0xE0,//and the second call returns the actual key code.#include <conio.h>#include <windows.h>void main() {    unsigned short k;    while (1) {        Sleep(100);        k=getch();        if (27==k) break;//按Esc键退出        if (0==k||0xe0==k) k|=getch()<<8;//非字符键        cprintf("%04x pressed.\r\n",k);    }} 

热点排行