boost :: program_options从控制台读取一个整数数组

时间:2012-03-16 18:48:30

标签: c++ boost boost-program-options

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

我现在正在做的是

  

$ ./foo --array“1,2,3”

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

但我想要像

这样的东西
  

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

并在arr []中阅读。还想知道arr []的长度,不想让它成为命令行参数。

1 个答案:

答案 0 :(得分:5)

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

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

命令行上的每个选项都将附加到矢量。