有没有办法用getopt函数解析:
./prog -L -U
同于:
./prog -LU
这是我的尝试(不工作):
while ((c = getopt(argc, argv, "LU")) != -1) {
switch (c) {
case 'L':
// L catch
break;
case 'U':
// U catch
break;
default:
return;
}
}
在这个简单的例子中只有 2 个参数,但在我的项目中需要 6 个参数的所有组合。例如:-L
或 -LURGHX
或 -LU -RG -H
等。
getopt()
可以处理这个吗?或者我必须编写复杂的解析器才能做到这一点?
最佳答案
除了缺少大括号,您的代码对我来说工作正常:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv) {
int c;
while ((c = getopt(argc, argv, "LU")) != -1) {
switch (c) {
case 'L':
// L catch
printf("L\n");
break;
case 'U':
// U catch
printf("U\n");
break;
default:
break;
}
}
return 0;
}
$ ./a.out -LU L U $ ./a.out -L L $
关于c++ - getopt加入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15329778/