文章标题 原创 翻译 转载 文章内容 对于一些工具程序使用命令行是非常普遍的,也是很方便的。但是原始的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会抛出异常的,所以你应该捕获一下异常 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交