|
发表于 2002-11-29 11:44:59
|
显示全部楼层
http://my.nbip.net/homepage/unix/programs/a0139.html这里有点资料,但是是用于unix系统的,看看他的mygetch():
int mygetch()
{
int i;
char c;
struct termio *old_tbuf,tbuf;
ioctl(0,TCGETA,&old_tbuf);/* 取当前终端信息 */
tbuf=old_tbuf;
tbuf.c_lflag&=~ICANON; /* 设为原始模式 */
tbuf.c_cc[VNUM]=1;/* 设最少输入一个字符 */
tbuf.c_cc[VTIME]=0;/* 等待时间为0 */
ioctl(0,TCSETA,&tbuf);
i=read(0,&c,1);
if(c==27){/* 如为27则为光标键前导码 */
read(0,&c,1);read(0,&c,1);
switch(c){
case ‘A':return(56);break;/* UP */
case ‘B':return(50);break;/* DOWN */
case ‘C':return(54);break;/* RIGHT */
case ‘D':return(52);break;/* LEFT */
case 27:return(27);break;/* ESC */
}
ioctl(0,TCSETA,&old_tbuf);
return(c);
}
这个mygetch里面用到的大部分东西linux都有,只是termio结构有点不同,我还没移植成功,你看看该怎么弄? |
|