2

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

我现在正在做的是

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

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

但我想要类似的东西

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

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

4

1 回答 1

5

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

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

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

于 2012-03-16T19:05:13.247 回答