访问与命令行参数关联的整数列表

时间:2014-11-25 11:46:42

标签: c++ gflags

我在c ++中使用gflags来解析命令行参数。我想有一个命令行标志,接受一个参数列表。例如,下例中的param

./myprog --param 0 1 2 3

如何访问与此参数关联的整数列表?

1 个答案:

答案 0 :(得分:3)

gflags不支持数组输出,它只是跳过未知数据,所以你可以选择:
选择1,在gFlags之前手动解析args,但是为gflags添加param - 因为没有错误解析,例如:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <vector>
    #include <gflags/gflags.h>

   DEFINE_string(param, "string", "string"); 

   int main (int argc, char **argv) 
   {
        vector<int> param;
        for (int i = 0; i < argc; i++) 
        {
            if (!strcmp(argv[i], "--param")) 
            {
                for (++i; i < argc; i++) 
                {
                    if (!isdigit(argv[i][0]))
                        break;
                    param.push_back(atoi(argv[i]));
                }
            }
        }
        gflags::ParseCommandLineFlags(&argc, &argv, false); 
        return 0;
    }     


选择2:
修改输入命令行例如: - param 0,1,2,3
并在gFlags中接收param作为字符串,将字符串拆分为&#39;,&#39;并转换为整数数组。