我一直在尝试在 Linux 上使用 C++ 控制台应用程序。
我想根据他使用的参数更改用户的选项。
喜欢:./my -n 1234
或./my -f file.txt
-n 或 -f 始终为 argv[1] 1234 或 file.txt 始终为 argv[2]
我的主要()
int main(int argc, char *argv[])
到目前为止,这是我的代码:
string numlist, num;
if (argc < 3) {
fprintf(stderr,"usage stuff...%s %s", argv[0], argv[0]);
exit(0);
}
char *f = "-f";
char *n = "-n";
char *argv0 = argv[0];
char *argv1 = argv[1];
char *argv2 = argv[2];
if (strcmp(argv1, f) == 0){
numlist = argv[2];
//more data for this parameter
}
if (strcmp(argv1, n) == 0){
num = argv[2];
//more data for this parameter
}
问题:
当我尝试./my -n 1234
这应该跳过第一个 if 块,然后执行第二个 if 块。
或./my -f file.txt
应该执行第一个 if 块,并跳过第二个 if 块。
现在使用我当前的代码,如果我输入 -n 或 -f 它会跳过所有 if 块。
-- 编辑 --
我想我已经解决了问题实际上不在 argv 上,而是在我的 if 块上。
谢谢大家,我会检查你所有的建议。