|
|
各位大侠我想实现一个类似于在linux的Shell下输入一个命令的一部分当按下tab键时,唯一匹配的命令自动输出来,我想实现这样的效果,请问该怎么实现呀?我写了一个模拟程序((如下),程序要实现的效果如下:比如当程序编译运行后输入ni然后按下tab,这时会自动补全为nihao,我这个程序运行后,结果却是这样:输入ni然后tab,变成ni(后跟8空格), 按回车,在下一行输出hao,我想让按下tab后光标仍然不动,并且不用输入回车就自动补全匹配的字符串,请问该怎样实现?下面的程序可以直接运行,大侠们可以试试,谢谢啦!
#include <stdlib.h>
int main()
{
char *A[]={"nihao","guangzhou","shanghai","jilin"};
char a[32]={0};
char b[32]={0};
int i,j,k,count=0;
for(i=0;i<32;i++)
{
scanf("%c",&a);
if(i>=1&&a=='\t')
{
for(j=0;j<4;j++)
{
if(strncmp(a,A[j],i)==0)
{
count++;
k=j;
}
}
if(count==1)
{
strcpy(a,A[k]);
printf("%s",&a);
break;
}
}
}
} |
|