C++ Boost::program_选项-如果未提供输入,则打印使用情况
我试图使用Boost program_选项来解析我的程序输入。通常,文档提供解析所需的信息。然而,我想让我的程序在没有输入的情况下打印使用说明,我似乎无法理解。似乎没有“默认”选项,我也找不到如何计算(测试)提供的输入数量 这是我目前的代码:C++ Boost::program_选项-如果未提供输入,则打印使用情况,c++,boost,boost-program-options,C++,Boost,Boost Program Options,我试图使用Boost program_选项来解析我的程序输入。通常,文档提供解析所需的信息。然而,我想让我的程序在没有输入的情况下打印使用说明,我似乎无法理解。似乎没有“默认”选项,我也找不到如何计算(测试)提供的输入数量 这是我目前的代码: boost::program_options::options_description help("Usage"); help.add_options() ("help", "print help info"); boost::program_o
boost::program_options::options_description help("Usage");
help.add_options()
("help", "print help info");
boost::program_options::options_description req("Required inputs");
req.add_options()
("root", boost::program_options::value<std::string>(&images_root), "Root directory")
boost::program_options::options_description opt("Option inputs");
opt.add_options()
("verbose", boost::program_options::value<bool>(&verbose)->implicit_value(1), "Verbose");
boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, all), vm);
if (vm.count("help"))
{
std::cout << help;
return 1;
}
boost::program_options::notify(vm);
您可以使用
argc
例如:
int main(int argc, char** argv)
{
if( argc <= 1 )
std::cout << "Print Usage\n";
return 0;
}
int main(int argc,char**argv)
{
if(argc)自定义验证器功能如何?我同意@Roby。在这种情况下,只需将行:if(vm.count(“help”)
更改为if(vm.count(“help”)|(argc==0))
@kenba,你错了。0参数是程序名本身(即,如果没有解析参数,argh是1)。对不起@Roby,所以它变成了if(vm.count(“help”)|”)(argc
int main(int argc, char** argv)
{
if( argc <= 1 )
std::cout << "Print Usage\n";
return 0;
}