我想起诉getopt
来获取我的控制台工具的参数列表。
当我调用我的工具时,getopt
会始终返回1
并且不会对任何switch/case
进行调整。
我做错了吗?
mytool -f farg -d darg
int
main(int argc, char** argv) {
int c;
while((c = getopt(argc, argv, "f:d:h") != -1)) {
switch(c) {
case'f':
break;
default:
break;
}
}
答案 0 :(得分:4)
while((c = getopt(argc, argv, "f:d:h") != -1))
就像
一样c = (getopt(argc, argv, "f:d:h") != -1)
嗯,这是1总是因为比较结果存储到c
。在您的情况下,getopt
不会返回-1
。如果它返回-1
,则c
将为0
。修复是
while((c = getopt(argc, argv, "f:d:h")) != -1)