我在 C++ 中使用 gflags 来解析命令行参数。我想要一个接受参数列表的命令行标志。例如下面示例中的 param
。
./myprog --param 0 1 2 3
如何访问与此参数关联的整数列表?
最佳答案
gflags不支持数组输出,只是跳过未知数据,所以可以选择:
选择 1,在 gFlags 之前手动解析 args,但将参数添加到 gflags - 为了不出错解析,例如:
#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;
}
选择二:
将您的输入命令行修改为:--param 0,1,2,3
并在 gFlags 中将参数作为字符串接收,用 ',' 拆分字符串并转换为整数数组。
关于c++ - 访问与命令行参数关联的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125887/