← index
Argz/test.cpp
Source: Argz/test.cpp
#include"argz.hpp"


int main(int argc, char **argv) {
    Argz<std::string> argz(argc, argv);
    argz.addOptionSingleValue('i', "input text")
    .addOptionDoubleValue('I', "input", "input file")
    .addOptionSingleValue('o', "output file")
    .addOptionDoubleValue('O', "output", "output file")
    .addOptionSingle('h', "help")
    .addOptionSingle('v', "help");
    std::string in_file, out_file;
    int value = 0;
    Argument<std::string> arg;
    try {
        while((value = argz.proc(arg)) != -1) {
            switch(value) {
                case 'h':
                case 'v':
                    argz.help(std::cout);
                    exit(EXIT_SUCCESS);
                    break;
                case 'i':
                    in_file = arg.arg_value;
                    break;
                case 'o':
                    out_file = arg.arg_value;
                    break;
            }
        }
    } catch(const ArgException<std::string> &e) {
        std::cerr << "Syntax Error: " << e.text() << "\n";
    }

    if(in_file.length() == 0) {
        std::cerr << "Input file must be provided...use -i \n";
        exit(EXIT_FAILURE);
    }
    std::cout << "i: " << in_file << " O: " <<  out_file << "\n";
    std::cout << "Success..\n";
	return 0;
}