1、简介
clipp是一个使用方便、功能强大的命令行解析器,源码只有一个头文件《clipp.h》
github地址:https://github.com/muellan/clipp
2、使用
只演示最简单的例子,更复杂的参见源码中《README.md》。
例如需要如下命令行参数
用法:
convert <input file> [-r] [-o <output format>] [-utf16]
参数说明:
-r, --recursive convert files recursively
-utf16 use UTF-16 encoding
#include <iostream>
#include "clipp.h"
using namespace clipp; // clipp命令行解析器 命名空间
using std::cout;
using std::string;
int main(int argc, char* argv[]) {
// 先声明用于保存命令行参数的变量
bool rec = false, utf16 = false;
string infile = "", fmt = "csv";
// 定义命令行参数
auto cli = (
value("input file", infile),
option("-r", "--recursive").set(rec).doc("convert files recursively"),
option("-o") & value("output format", fmt),
option("-utf16").set(utf16).doc("use UTF-16 encoding")
);
// 解析命令行参数
if(!parse(argc, argv, cli)) cout << make_man_page(cli, argv[0]);
// 如果解析成功,变量就会取得命令行参数的值
}