编写一个智能编辑器来模拟以下内容:
如果新单词以与之前输入的单词相同的字母开头,则输入时应选择单词而不是键入整个单词。 这是我的作业。
我的算法:
1: Read the input by everytime checking the _kbhit() macro.
2: Store the word in an array
3: On every further read, check the array if the word exists.
现在出现问题!!!
如何为用户提供选择单词的选项? 即使提供选项成功,我怎么知道用户已决定选择该字?
我是这种编程风格的新手。任何人都知道如何做到这一点,请帮助我...
答案 0 :(得分:1)
各种各样的东西使用自动完成....甚至谷歌搜索!您只需要选择一个方法,例如,选项卡循环选项,空格选择该选项(或输入)。也许Esc阻止它试图自动完成该选项。无论哪种方式,由你来制定计划。也许尝试一些其他程序自动完成。
答案 1 :(得分:1)
这取决于您如何阅读输入并与用户通信。如果它只是一个终端,我建议你定义一个键(可能是tab或esc)移动到choosing state
,然后让他(例如)点击一个数字(或键)。
编辑:一些代码:
char c=getchar();
//some of your proccessing...
if (c=='\t') {
printf("\nPlease select option (0 to abort)\n");
char **op;
int n,i;
//calculate the options, assign them to op and n.
for (i=0;i<n;i++) printf("%d: %s\n",i+1;op[i]);
i=n+1;
while (i<0 || i>n) scanf("%d",&i);
if (i>0) {
//do whatever you need. remember to use i-1
}
}
//reprint the whole string.