私は、使用方法getopt_long()
と、optlongを使用して複数の文字オプションを「読み取る」方法を読んでいます。
ターミナルから次のエントリを解析する必要があります。
./bomb –n String –cp Integer –i Integer –c Integer –fc String
したがって、getoptlongを使用する前に、短いオプションと長いオプションを定義します。
if(argc != 11){
perror("Error en numero de argumentos \n");
exit(EXIT_FAILURE);
}
const char* const short_options = "n:i:c:";
static struct option long_options[] = {
{"cp", 1, NULL, 'a'},
{"fc", 1, NULL, 'b'},
{0, 0 , 0, 0}
};
引数(それが目的です)でshort_options
ピックアップします。とも同じです。したがって、同じことが長いオプションにも適用される必要があります(どちらも引数を取得します)。n
:
c
i
while(opt != -1){
opt = getopt_long(argc, argv, short_options, long_options, NULL);
switch (opt){
case 'n':
//print it
case 'a':
//print it
}
}
さて、このコードは、解析して、それが属するケースに入り、正しく印刷するときに最適に機能し-c -i
ます-n
。私の問題、それはとのため-cp
に働いていません-fc
。そして、私は以前に作業したことがないので、これを修正する方法が本当にわかりませんgetopt()
。
前もって感謝します