[英]getopt always returns 1
我想使用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;
}
}
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.