clipp示例

clipp/1.2.3

#include <iostream>
#include <string>
#include <clipp.h>

# define __VERSION  "0.0.0.1"
int main(int argc, char* argv[]) {
    bool help = false;
    bool version = false;
    std::string input_file;
    std::string output_file;

    auto cli = (
        // 定义一个帮助标志,使用 -h 或 --help
        clipp::option("-h", "--help").set(help).doc("Show help information"),
        // 定义一个输入文件选项,使用 -i 或 --input
        clipp::option("-i", "--input").doc("Input file") & clipp::value("file", input_file),
        // 定义一个输出文件选项,使用 -o 或 --output
        clipp::option("-o", "--output").doc("Output file") & clipp::value("file", output_file),
        // 定义一个整数值选项,使用 -v 或 --value
        clipp::option("-v", "--value").set(version).doc("Show version")
        );

    if (clipp::parse(argc, argv, cli)) {
        if (help) {
            std::cout << clipp::make_man_page(cli, argv[0]);
        }else if(version){
            std::cout << "Version: " << __VERSION << std::endl;
        }
        else {
            std::cout << "Input file: " << input_file << std::endl;
            std::cout << "Output file: " << output_file << std::endl;
        }
    } else {
        std::cerr << clipp::make_man_page(cli, argv[0]);
        return 1;
    }
    return 0;
}

posted @ 2025-01-14 17:22  料峭春风吹酒醒  阅读(42)  评论(0)    收藏  举报