boost::program_options 解析命令行参数
2024-09-05 00:47:07
源码:
#include <boost/program_options.hpp>
namespace po = boost::program_options; int main(int argc, char** argv)
{
int compression;
po::options_description desc("Allow options");
desc.add_options()
("help", "produce help message")
("compression", po::value<int>(), "set compression level");
//("help,h", "produce help message")
//("compression", po::value<int>(&compression)->default_value(10), "set compression level"); po::variables_map vm;
try
{
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
}
catch (...)
{
std::cout << "输入的参数中存在未定义的选项!\n";
return 0;
} if (vm.count("help"))
{
cout << desc << endl;
return 1;
} if (vm.count("compression"))
{
cout << "Compression level was set to " << compression << endl;
}
else
{
cout << "Compression level was not set." << endl;
}
return 0;
}
运行:
注意:
- po::options_description desc("Allow options"); /*此行,用的是options_description类, 本人犯了错,记下来警醒自己*/
- po::parse_command_line(argc, argv, desc) /*这句代码, 当在命令行输入了参数,但不带其对应该的值,就会运行报错,所以需要try来捕捉异常*/
最新文章
- 期许伟大-基于CMMI的过程改进之道探索
- 20145325张梓靖 实验三 ";敏捷开发与XP实践";
- SQL 汉字转换成拼音首字母 首字母查
- MariaDB集群Galera Cluster的研究与测试
- SCOI2009windy数
- inner join
- Windows Phone开发(34):路径标记语法
- 老李分享:loadrunner操作mysql数据库
- 物理提取大绝招”Advanced ADB”???
- java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)
- 在Bootstrap开发框架中使用bootstrap-datepicker插件
- java获取本机ip地址(写出来的)
- C# 调用短信接口
- MyBatis核心接口和类
- 树莓派3b安装Apache2+PHP+MySQL+phpyadmin
- mysql之show engine innodb status解读(转)
- miniOrm
- java读properties文件 乱码
- java 获取今天,昨天,上个月的日期
- 不小心把sudoer改错了的补救方法