c语言高手帮忙看一下.谢谢
#defineF90x43#defineEsc0x1b#defineDel0x53#defineHome0x47#defineEnd0x4f#defineSpace0x2...
#define F9 0x43
#define Esc 0x1b
#define Del 0x53
#define Home 0x47
#define End 0x4f
#define Space 0x20
#define Up 0x48
#define Down 0x50
#define Left 0x4b
#define Right 0x4d
#define Enter 0x0d
这些定义中的
#define F9 0x43
0x1b 0x53 0x47 0x4f 0x20 0x48 0x50 0x4b 0x4d 0x0d
是什么意思??
分别代表什么?? 展开
#define Esc 0x1b
#define Del 0x53
#define Home 0x47
#define End 0x4f
#define Space 0x20
#define Up 0x48
#define Down 0x50
#define Left 0x4b
#define Right 0x4d
#define Enter 0x0d
这些定义中的
#define F9 0x43
0x1b 0x53 0x47 0x4f 0x20 0x48 0x50 0x4b 0x4d 0x0d
是什么意思??
分别代表什么?? 展开
6个回答
展开全部
这些是键盘的扫描码,比如按下键盘的回车键,他的扫描码就是0x0d ,若用getchar()获取按键,必须要在按下该键的同时,必须按下回车键,才能得到该键的值,但如用bioskey()来获取按键则不需要,下面是一个简单的例子,按上下左右键可移动人头:
#include<stdio.h>
#include<bios.h>
#include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x11b
void main()
{
int l=15,r=35,u=10,d=18,x,y,key;
void frame(int,int,int,int);
void move(int,int *,int *,int *,int *,int *,int *);
clrscr();
x=(l+r)/2;
y=(u+d)/2;
textcolor(YELLOW);
frame(l,r,u,d);
gotoxy(x,y);
cprintf("%c",1);
key=bioskey(0);
while(key!=ESC)
{
move(key,&x,&y,&l,&r,&u,&d);
key=bioskey(0);
}
}
void frame(int l,int r,int u,int d)
{
int i;
for(i=l;i<r+1;i++)
{
gotoxy(i,u);
printf("%c",219);
gotoxy(i,d);
printf("%c",219);
}
for(i=u+1;i<d+1;i++)
{
gotoxy(l,i);
printf("%c",219);
gotoxy(r,i);
printf("%c",219);
}
}
void move(int key,int *x,int *y,int *l,int *r,int *u,int *d)
{
gotoxy(*x,*y);
putchar(32);
if(key==UP)
{
if(*y==*u+1)*y=*d-1;
else (*y)--;
}
if(key==DOWN)
{
if(*y==*d-1)*y=*u+1;
else (*y)++;
}
if(key==LEFT)
{
if(*x==*l+1)*x=*r-1;
else (*x)--;
}
if(key==RIGHT)
{
if(*x==*r-1)*x=*l+1;
else (*x)++;
}
gotoxy(*x,*y);
putchar(1);
}
具体可参考:
http://baike.baidu.com/view/653950.html?wtp=tt
#include<stdio.h>
#include<bios.h>
#include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x11b
void main()
{
int l=15,r=35,u=10,d=18,x,y,key;
void frame(int,int,int,int);
void move(int,int *,int *,int *,int *,int *,int *);
clrscr();
x=(l+r)/2;
y=(u+d)/2;
textcolor(YELLOW);
frame(l,r,u,d);
gotoxy(x,y);
cprintf("%c",1);
key=bioskey(0);
while(key!=ESC)
{
move(key,&x,&y,&l,&r,&u,&d);
key=bioskey(0);
}
}
void frame(int l,int r,int u,int d)
{
int i;
for(i=l;i<r+1;i++)
{
gotoxy(i,u);
printf("%c",219);
gotoxy(i,d);
printf("%c",219);
}
for(i=u+1;i<d+1;i++)
{
gotoxy(l,i);
printf("%c",219);
gotoxy(r,i);
printf("%c",219);
}
}
void move(int key,int *x,int *y,int *l,int *r,int *u,int *d)
{
gotoxy(*x,*y);
putchar(32);
if(key==UP)
{
if(*y==*u+1)*y=*d-1;
else (*y)--;
}
if(key==DOWN)
{
if(*y==*d-1)*y=*u+1;
else (*y)++;
}
if(key==LEFT)
{
if(*x==*l+1)*x=*r-1;
else (*x)--;
}
if(key==RIGHT)
{
if(*x==*r-1)*x=*l+1;
else (*x)++;
}
gotoxy(*x,*y);
putchar(1);
}
具体可参考:
http://baike.baidu.com/view/653950.html?wtp=tt
展开全部
定义某个动作的值吧
这种东西在windows api里面有很多哦
这种东西在windows api里面有很多哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是定义了 按键和ASCII码的对应值
空格的ascii就是0x20
所以以后使用到Space就是使用它的ascii
空格的ascii就是0x20
所以以后使用到Space就是使用它的ascii
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0x1b 0x53 0x47 0x4f 0x20 0x48 0x50 0x4b 0x4d 0x0d
都是一些十六进制的一些数!
你可以自己编个小程序把十六进制转成十进制!
都是一些十六进制的一些数!
你可以自己编个小程序把十六进制转成十进制!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是键盘上键的名字,定义的数值是16进制整型数。
例如:
F9 键 数值是16进制 43
Esc 键 数值是16进制 1b
Space [长条空白键] 数值是16进制 20
Enter [回车键] 数值是16进制 0d
其它键名在键盘上都可找到。
例如:
F9 键 数值是16进制 43
Esc 键 数值是16进制 1b
Space [长条空白键] 数值是16进制 20
Enter [回车键] 数值是16进制 0d
其它键名在键盘上都可找到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这些宏全是 对应的ascii
楼主你搜一下ascii 表就知道怎么回事了。
楼主你搜一下ascii 表就知道怎么回事了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询