【发布时间】:2016-12-09 06:55:11
【问题描述】:
我正在尝试编写一个工具来比较我的文件,但我发现很难与之交互。我想支持 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 从以前的命令中选择等等。我应该如何实现?
【问题讨论】:
标签: c++ shell command-line-interface