- 注册时间
- 2004-11-14
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2006-2-13 13:47:00
|
显示全部楼层
呵呵明白了,不好意思,"%d"和"%s"这么不一样啊呵呵。
看看我写的输入函数怎样:
char input()
{
int in;
char p,l,t;
l=1;
for (;;)
{
inputc[p]='_';
inputc[l]=0;
SetScreen(0);
printf("请输入数据:\n%s",inputc);
in=GetWord(3);
if (in==KEY_ENTER)
{
inputc[p]=0;
return 1;
}
if (in==KEY_ESC) return 0;
if (in==KEY_LEFT && p>0)
{
inputc[p]=inputc[--p];
if (inputc[p]>127) inputc[p]=inputc[--p];
continue;
}
if (in==KEY_RIGHT && p<l-1)
{
inputc[p]=inputc[++p];
if (inputc[p]>127) inputc[p]=inputc[++p];
continue;
}
if (in==KEY_F2)
{
if (p)
{
if (inputc[p-1]>127) t=2;
else t=1;
if ((p-t)<0) continue;
memmove(inputc+p-t,inputc+p,l-p);
p=p-t;
l=l-t;
}
continue;
}
if (!isprint(in) && in>0) continue;
if (l<50)
{
t=1;
if (in>256 || in<0) t=2;
if (p+t>49) continue;
if (p!=l-1) memmove(inputc+p+t,inputc+p,l-p);
inputc[p++]=in;
if (t==2) inputc[p++]=in>>8;
l=l+t;
}
}
}
|
|