我希望能够获得-a arg的2个值:-a min max
我有以下代码:
while((opt = getopt(argc,argv,"a:c:k:rv")) != -1)
{
switch (opt)
{
case 'a':
min = atoi(optarg);
fprintf( stderr,"value1: %s\n", optarg);
optind--;
for( ;optind < argc && *argv[optind] != '-'; optind++)
{
optind++;
fprintf( stderr,"value2: %s\n", optarg);
max = atoi(optarg);
}
break;
//other cases
}
}
如何为单个参数获取多个值?
答案 0 :(得分:1)
接受选项的两个参数的最简单方法是使用非空白字符':'
加入它们:
myprogram -a min:max other-options
这种方式getopt
将其视为单个参数。当你处理它时,你需要自己分成两个。如果两半都是数字,那么这应该有效:
if (sscanf(optarg, "%d:%d", &min, &max) != 2)
/* report an error */