2013-09-25 27 views
2

的朋友,我不得不放棄「 - 」作爲選項參數在如何給連字符作爲選項參數,在getopt的類

的Getopt類下面

Getopt g = new Getopt("cm_log_parser", args, "i:s"); //-D to enable debug log 


while((opt = g.getopt()) != -1) 
{ 
    switch (opt) 
    { 
     case 'f'://To set file name(if above is not specified) 
      fileNameWithPath = getAndCheckOptArg(fFlag, opt, g); 
      fFlag = true; 
      break; 

     case 's'://To set the header 
      String separator = getAndCheckOptArg(hFlag, opt, g); 
      hFlag = true; 
      breakk; 
     case '?': 
      usage("Invalid option" + opt + " option"); 
      break; 
    } 
} 

我的代碼給出

在我想作爲-s「 - 」的參數中,但它顯示了一些錯誤,如無效選項有沒有辦法做到這一點?

回答

1

Getopt--具有特殊的含義

用戶可以強制getopt的()來停止掃描命令行與特別參數「 - 」本身。在「 - 」之前發生的任何元素都會被正常掃描和置換。 「 - 」之後的任何元素都將作爲非選項argv元素返回。例如,「foo -a-bar -d」會返回選項'a',然後返回-1。 optind將指向「foo」,「bar」和「-d」作爲非選項argv元素。 「 - 」被getopt()丟棄。

所以我恐怕你不能把這個關掉。

0

您可能可以使用-s-(無空格)來完成此操作。我不知道Getopt是否允許這樣做。

相關問題