我有一個程序,你在這裏輸入一個選項 -d
然後你是否在選項後面提供了一個非可選參數,做點什麼。
繼承人我的代碼:Getopt可選參數?
#include <stdio.h>
#include <getopt.h>
#include <stdlib.h>
#define OPT_LIST "d::"
int main (int argc, char *argv[])
{
int c;
char string[] = "blah";
while ((c = getopt (argc, argv, OPT_LIST)) != -1)
{
switch (c)
{
case 'd':
printf("%s\n", optarg);
break;
case '?':
fprintf(stderr, "invalid option\n");
exit(EXIT_FAILURE);
}
}
}
所以,如果你選擇後進入一個非可選參數,它打印的說法。但如果用戶不提供非可選參數(這就是爲什麼我把雙冒號放在 OPT_LIST中),我希望它打印出字符串「字符串」。但我不知道如何做到這一點,所以任何幫助將不勝感激。
user:desktop shaun$ ./arg -d hello
hello
user:desktop shaun$ ./arg -d
./arg: option requires an argument -- d
invalid option
我用C語言編寫運行在Mac的OS X:
繼承人當我運行該程序會發生什麼。
嗯,'的printf( 「%S \ n」,字符串)'? – 2013-10-26 08:23:46
我想它來打印字符串時,我喜歡運行的程序: ./arg -d – pudumaster
這正是該行,如果在地方插入其中'fprintf中(錯誤,「無效選項\ n」),上面會做什麼;目前'駐留。 – 2013-10-26 08:34:32