C中的智能编辑器程序

时间:2012-01-25 22:08:36

标签: c

编写一个智能编辑器来模拟以下内容:

如果新单词以与之前输入的单词相同的字母开头,则输入时应选择单词而不是键入整个单词。 这是我的作业。

我的算法:

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.

现在出现问题!!!

如何为用户提供选择单词的选项? 即使提供选项成功,我怎么知道用户已决定选择该字?

我是这种编程风格的新手。任何人都知道如何做到这一点,请帮助我...

2 个答案:

答案 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.