欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

boost命令行解析

最后更新 2021-08-13 09:44:39   阅读量 1206

Table of Contents

  • 1. 头文件
  • 2. 增加描述信息
  • 3. 解析
  • 4. 获取值
  • 5. 使用方法
  • 6. 异常

对于一些工具程序使用命令行是非常普遍的,也是很方便的。但是原始的main函数只提供了一个简单的参数使用方法,要想提供一些 更丰富的命令交互还需要自己来解析。

boost有提供这个功能用起来还是蛮方便的,下面就是简单的使用方法。

头文件

#include <boost/program_options.hpp>

为了书写简单,重定义一下域名空间

namespace po = boost::program_options;

增加描述信息

    po::options_description desc("launch options");
    desc.add_options()
        ("help", "launch help message")
        ("version", po::value<std::string>(), "plugin version")
        ("install", "install plugin")
        ("uninstall", "uninstall plugin")
    ;

help:帮助信息,后面不需要值
version:版本号,后面跟着字符串类型,所以使用version命令的时候后面必须跟着值
install:安装
uninstall:卸载

解析

    po::variables_map vm;
    po::store(po::parse_command_line(argc, argv, desc), vm);
    po::notify(vm);

获取值

    if (vm.count("help")) {
        std::cout << desc << "\n";
        return 0;
    }

打印帮助信息

    if (vm.count("version")) {
        std::string version = vm["version"].as<std::string>();
    }

获取版本号

使用方法

launch.exe --help
launch.exe --version 1.0.0
launch.exe --install
launch.exe -- uninstall

异常

如果你使用了未知的命令boost会抛出异常的,所以你应该捕获一下异常

(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – Qt怎样将gif作为窗口背景
上一篇 – golang 下载大文件进度

  1. Boost

toningto@outlook.com

推荐文章

Effective Python

Python的几种函数参数类型

标签云

Mac React Database Qt Node.js Javascript Product C/C++ Python Bug Tools Windows Linux Tips Design Go IOS MongoDB Shell Android Mobile Life Java Web MQ Others Boost

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2