我正在尝试编写一个工具来比较我的文件,但我发现很难与之交互。我想支持2个操作:1)将我的文件加载到内存中2)比较已加载的文件。
这个想法如下所示
while (true) {
getline(&line, &linesize, stdin);
if (strlen(line) < 2) continue;
token = strtok(line, DELIM);
if (!strcmp(token,"load")) {
puts("you want to load something");
} else if (!strcmp(token, "compare")) {
puts("you want to compare something");
} else if (!strcmp(token, "exit")) {
puts("exiting...");
exit(1);
} else {
puts("Cannot parse, try again");
}
}
在终端中,如果我想比较一些MyVeryLongFileNameFile.foo
和AnotherVeryLongFileNameFile.bar
,我只需输入diff My\tab Ano\tab \enter
即可自动为我完成文件名。
我想在我的程序中也有这些功能,比如使用tab来自动完成,使用up / down来选择以前的命令,等等。我应该如何实现这个目标?