源码:

#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;
}

运行:

注意:

  1. po::options_description desc("Allow options"); /*此行,用的是options_description类, 本人犯了错,记下来警醒自己*/
  2. po::parse_command_line(argc, argv, desc) /*这句代码, 当在命令行输入了参数,但不带其对应该的值,就会运行报错,所以需要try来捕捉异常*/

最新文章

  1. 期许伟大-基于CMMI的过程改进之道探索
  2. 20145325张梓靖 实验三 &quot;敏捷开发与XP实践&quot;
  3. SQL 汉字转换成拼音首字母 首字母查
  4. MariaDB集群Galera Cluster的研究与测试
  5. SCOI2009windy数
  6. inner join
  7. Windows Phone开发(34):路径标记语法
  8. 老李分享:loadrunner操作mysql数据库
  9. 物理提取大绝招”Advanced ADB”???
  10. java编程(2)——servlet和Ajax异步请求的接口编程(有调用数据库的数据)
  11. 在Bootstrap开发框架中使用bootstrap-datepicker插件
  12. java获取本机ip地址(写出来的)
  13. C# 调用短信接口
  14. MyBatis核心接口和类
  15. 树莓派3b安装Apache2+PHP+MySQL+phpyadmin
  16. mysql之show engine innodb status解读(转)
  17. miniOrm
  18. java读properties文件 乱码
  19. java 获取今天,昨天,上个月的日期
  20. 不小心把sudoer改错了的补救方法

热门文章

  1. Python:列表类型
  2. 吴裕雄--天生自然Numpy库学习笔记:NumPy 矩阵库(Matrix)
  3. N3K异常重启(案例)
  4. Python中利用for表达式创建列表
  5. php 算法知识 冒泡排序
  6. KEAZ128 时钟配置
  7. python包管理历史
  8. 解决安装PyMySQL一直停在Building wheels for collected package:cryptography, cffi, pycparser的问题
  9. day 11 笔记
  10. Java 并发锁