c++ - boost::program_options 从控制台读取整数数组

标签 c++ boost boost-program-options

我想使用 boost::program_options 从控制台读取整数数组。数组的长度未知,我不想一次性读取所有数据。我怎样才能做到这一点?

我现在正在做的是

$ ./foo --array "1, 2, 3"

然后通过分割输入字符串来填充 arr[]。

但我想要类似的东西

$ ./foo --array 1 --array 2 --array 3

并在arr[]中读取它。还想知道 arr[] 的长度,不想将其作为命令行参数。

最佳答案

使用 vector 而不是数组。然后,只需指定一个 vector 作为选项类型:

po::options_description desc("Allowed options");
desc.add_options()
    ("array", po::value< vector<int> >())
;

命令行上的每个选项都将附加到 vector 中。

关于c++ - boost::program_options 从控制台读取整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9742881/

相关文章:

c++ - 将自定义类型与 Boost 程序选项一起使用

c++ - 处理失败的构造函数

c++ - 是否可以专门化别名声明?

c++ - 为什么这个内存代码会出现段错误?

c++ - 在模板类 (C++) 中创建 boost.bimap 时的警告

c++ - 使用 Boost 的 program_options 处理复杂的选项

c++ - operator= 的值参数导致奇怪的编译错误

c++ - 在 LLVM 中的两个 block 之间插入一个 block

c++ - boost make_shared 不带模板参数

c++ - 如何使用 boost.program_options 处理多个语法命令行参数