C 程序启动参数
C program launch argument
我想输入参数来启动程序
例如:./program -i inputfile -e -b
。
我已经完成了下面的代码,但是我有一个问题,参数需要一个选项,例如当我输入 -i inputfile
时它可以工作,但是如果我输入 -e -b
它将采用 -b 作为 [= 的选项14=]。
我还没有找到解决方案,因为它要求我为每个参数输入一个选项
如果你能帮助我,谢谢你
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#define OPTSTR "h:b:c:d:e:f:i:l:g:o:r:x:s:Z:z"
int main(int argc, char *argv[]) {
int opt;
while ((opt = getopt(argc, argv, OPTSTR)) != EOF) {
switch(opt) {
case 'h':
printf("AIDE POUR LE PROGRAMME");
break;
case 'b':
printf("-b ENTERED");
break;
case 'c':
printf("-c ENTERED");
break;
case 'd':
printf("-d ENTERED");
break;
case 'e':
printf("-e ENTERED");
break;
case 'f':
printf("-f ENTERED");
break;
case 'i':
printf("-i ENTERED");
break;
case 'l':
printf("-l ENTERED");
break;
case 'g':
printf("-g ENTERED");
break;
case 'o':
printf("-o ENTERED");
break;
case 'r':
printf("-r ENTERED");
break;
case 'x':
printf("-x ENTERED");
break;
case 's':
printf("-s ENTERED");
break;
case 'Z':
printf("-Z ENTERED");
break;
case 'z':
printf("-z ENTERED");
break;
default:
printf("Mauvais argument entré ! \n");
break;
}
}
return 0;
}
在您的选项字符串中,字母后跟 :
表示该选项需要一个参数。如果选项不接受参数,则不要在其后放置 :
。
#define OPTSTR "h:b:c:d:ef:i:l:g:o:r:x:s:Z:z"
// ^-- no colon after "e"
我想输入参数来启动程序
例如:./program -i inputfile -e -b
。
我已经完成了下面的代码,但是我有一个问题,参数需要一个选项,例如当我输入 -i inputfile
时它可以工作,但是如果我输入 -e -b
它将采用 -b 作为 [= 的选项14=]。
我还没有找到解决方案,因为它要求我为每个参数输入一个选项
如果你能帮助我,谢谢你
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#define OPTSTR "h:b:c:d:e:f:i:l:g:o:r:x:s:Z:z"
int main(int argc, char *argv[]) {
int opt;
while ((opt = getopt(argc, argv, OPTSTR)) != EOF) {
switch(opt) {
case 'h':
printf("AIDE POUR LE PROGRAMME");
break;
case 'b':
printf("-b ENTERED");
break;
case 'c':
printf("-c ENTERED");
break;
case 'd':
printf("-d ENTERED");
break;
case 'e':
printf("-e ENTERED");
break;
case 'f':
printf("-f ENTERED");
break;
case 'i':
printf("-i ENTERED");
break;
case 'l':
printf("-l ENTERED");
break;
case 'g':
printf("-g ENTERED");
break;
case 'o':
printf("-o ENTERED");
break;
case 'r':
printf("-r ENTERED");
break;
case 'x':
printf("-x ENTERED");
break;
case 's':
printf("-s ENTERED");
break;
case 'Z':
printf("-Z ENTERED");
break;
case 'z':
printf("-z ENTERED");
break;
default:
printf("Mauvais argument entré ! \n");
break;
}
}
return 0;
}
在您的选项字符串中,字母后跟 :
表示该选项需要一个参数。如果选项不接受参数,则不要在其后放置 :
。
#define OPTSTR "h:b:c:d:ef:i:l:g:o:r:x:s:Z:z"
// ^-- no colon after "e"