我遇到一些麻烦,让get选择识别标志,而不管它在输入中的位置是什么。我的程序接受4个输入作为程序运行的参数。
这是我的代码
int a= strtol(argv[1],NULL,10);
int b = strtol(argv[2],NULL,10);
double c = strtol(argv[3],NULL,10);
double d = strtol(argv[4],NULL,10);
所以例如我会通过调用./test 5 5 5 5来运行我的程序 但是我需要程序无论位置如何都能识别它,然后根据它所在的位置设置变量。目前我正试图弄清楚何时传入-p(数字)。所以例如./test 5 5 5 5 -p5或./test p 5 5 5 5 5它将识别p旁边的5最多1个空格并存储该号码
我现在拥有的getopt如下
int i ;
int j = 0;
while ( (opt = getopt(argc,argv, "p:") ) != 1){
switch(opt){
case 'p':
cycles = (int) strtol ( optarg, Null,10);