我想使用boost :: program_options从控制台读取一个整数数组。数组的长度未知,我不想一次尝试读取所有数据。我怎么能这样做?
我现在正在做的是
$ ./foo --array“1,2,3”
然后通过拆分输入字符串填充arr []。
但我想要像
这样的东西$ ./foo --array 1 --array 2 --array 3
并在arr []中阅读。还想知道arr []的长度,不想让它成为命令行参数。
答案 0 :(得分:5)
使用向量而不是数组。然后,只需指定一个向量作为选项类型:
po::options_description desc("Allowed options");
desc.add_options()
("array", po::value< vector<int> >())
;
命令行上的每个选项都将附加到矢量。