Pages - Menu

標籤

AWS (1) bash (1) Boost (2) C (2) CMake (2) Concurrency_Programming (3) CPP (37) Database (2) DNS (1) Docker (4) Docker-Compose (1) ELK (1) emacs (4) gcp (1) gdrive (1) git (1) gitbash (2) gitlab (1) kvm (4) Linux (5) MT4 (4) MT5 (4) Multicast (2) MySQL (2) Nijatrader8 (1) OpenCV (1) Python (4) QT5 (1) R (1) rdp (3) screenshot (1) ssh (3) Tabnine (1) TCP (1) TensorFlow (1) Tools (12) Ubuntu_1904 (11) Ubuntu_20_04 (5) UDP (1) VS2010 (1) VS2015 (1) VS2019 (1) WebServer (1) Win10 (1) winmerge (1) WSL (1) xrdp (1)

搜尋此網誌

2020年4月30日星期四

Input parser

Aim

This is a simple example to show an argument input parser. You can set default value, required or not, short name and full name.

Source


#include <iostream>
#include "InputParser.h"

// Usage: ./InputParser --input abc.txt
// Usage: ./InputParser
int main(int argc, char *argv[])
{
    InputParser parser;
    parser.AddOption("i", "input", true); // required value example
    parser.AddOption("n", "number", false, "20"); // default value example
    parser.AddOption("o", "output"); // optional value example
    if (!parser.DoParse(argc, argv, true))
    {
        std::cout << "ERR not enough arguments" << std::endl;
        return 1;
    }

    std::cout << "input: " << parser["i"] << std::endl;
    std::cout << "number: " << std::stoi(parser["n"]) << std::endl;
    std::cout << "output: " << parser["o"] << std::endl;
    return 0;
}

Output

$ ./src/InputParser --input abc.txt
input: abc.txt
number: 20
output: 

$ ./src/InputParser
ERR: Option is needed --input
ERR: Usage: YourApp [-o|--output] <output>
 [-i|--input] <input>
 [-n|--number] <number>
ERR not enough arguments

沒有留言:

發佈留言