我的论点是这样的

./a.out -i file1 file2 file3

如何利用getopt()获取3个(或更多)输入文件?
我在做这样的事:
while ((opt = getopt(argc, argv, "i:xyz.."))!= -1){
  case 'i':
     input = optarg;
     break;
  ...
}

我只得到file1;如何得到file2file3

最佳答案

如果必须这样做,可以从argv[optind]开始,然后自己增加optind。但是,我建议不要这样做,因为我认为语法形式不好。(你怎么知道自己什么时候到了名单的末尾?如果某人有一个名为-的文件作为第一个字符呢?)
我认为最好还是将语法更改为:

/a.out -i file1 -i file2 -i file3

或将文件列表视为位置参数:
/a.out file1 file2 file3

关于c - C getopt多重值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3939157/

10-11 23:17