boost::program_options 解析命令行参数

源码:

#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来捕捉异常*/

转载于:https://www.cnblogs.com/dilex/p/10563836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值