例如,使用以下语法:
-I [file] -A 1 2 3
问题:
如何指定是否指定了文件,另外如果指定了三个(整数)值。
我理解以下内容:
po::options_descriptions desc("Allowed options");
desc.add_options()
如何使用指定的参数,例如:
if (argv[3] == 1) {
...
}
此致
答案 0 :(得分:4)
您使用variables_map
检查是否指定了选项。如果您添加了一个名为"file"
的选项,并且您的variables_map
被称为vm
:
if(vm.count("myoption")) { ... } // Returns 0 if myoption not specified. 1 or more if it was.
使用add_options
添加一些选项后,您可以像这样访问它们,假设您设置了名为variables_map
的{{1}}:
vm
在您的情况下,您希望将其中一个指定选项转换为整数序列。你可以这样做:
vm["myoption"].as<int>() // Will return an int, assuming your option is an int
vm["myoption"].as<std::string>() // Will return an std::string, assuming your option is an int
这将返回一个包含3个整数的向量,您可以像任何法向量一样索引和使用它。要查看是否有特定的3,只需使用vm["myoption"].as< std::vector<int> >()
向量成员函数。
关于此的增强教程位于here。