一个命令行解析器
这是一个简单的 C++ 命令行解析器。
这是一个简单使用示例。 ::
// 含有 cmdline.h 头文件 #include "cmdline.h" int main(int argc, char *argv[]) { // 创建解析器 cmdline::parser a; // 添加指定类型的变量。 // 第一个参数是长名称 // 第二个参数是短名称(如果指定了 '\0',则没有短名称) // 第三个参数是描述 // 第四个参数是必需的(可选。默认值为 false) // 第五个参数是默认值(可选。当必需为 false 时使用) a.add("host", 'h', "主机名", true, ""); // 第六个参数是额外约束。 // 这里,端口号必须是 1 到 65535,通过 cmdline::range() 来实现。 a.add("port", 'p', "端口号", false, 80, cmdline::range(1, 65535)); // cmdline::oneof() 可以限制选项。 a.add("type", 't', "协议类型", false, "http", cmdline::oneof("http", "https", "ssh", "ftp")); // 还可以定义布尔标志。 // 不带类型参数调用 add 方法。 a.add("gzip", '\0', "传输时使用 gzip"); // 运行解析器。如果命令行参数有效,则返回。如果参数无效,解析器输出错误消息,然后退出程序。如果指定了帮助标志("--help" 或 "-?"),解析器输出使用说明,然后退出程序。 a.parse_check(argc, argv); // 使用标志值 cout << a.get("type") << "://" << a.get("host") << ":" << a.get("port") << endl; // 通过调用 exist() 方法来引用布尔标志。 if (a.exist("gzip")) cout << "gzip" << endl; }
以下是一些执行结果:
暂无开放 Issues,或尚未同步最近议题。