簡體   English   中英

getopt 總是返回 1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM