我想在C++程序中使用getopt來解析命令行參數。 參數是-d xxx,-s xxx和 - ?. 我無法捕獲 - ?參數,我想打印一個標準的使用信息。getopt - capture'?'
while ((c = getopt (argc, argv, "?d:s:")) != -1) {
switch (c) {
case 'd':
...do stuff
break;
case 's':
... do stuff
break;
case '?':
// From example on GNU page, seems to capture -d, -s when no args provided.
// Gets here when -d or -s provided, but no arguments for these options.
default:
// shut down
}
嘗試,因爲我可能,我似乎無法捕捉「 - ?」選項。有沒有特別的技巧來抓住'?'在其自己的?我是否提供了getopt的正確模式(即'?d:s:') 此刻,c正被設置爲'?'只要提供了無效的選項,即使'?'不在命令行提供。
謝謝你們。
「getopt」使用'?'作爲特殊值的事實是給你一個免費的東西,你不應該用它來顯示幫助。這就是'-h'和'--help'的用處。遵守這些慣例而不是做自己的事情是值得的。 –