Sunday, 29 April 2012

C++ Program for Command Line Arguments


#include <iostream>
#include <cstdlib>      

int h = 0;              
char *op = "print.out";   
char *pname;            
int lmax = 66;            

void do_file(const char *const name)
{
    std::cout << "h " << h << " Lines " << lmax << 
            " Input " << name << " Output " << op << '\n';
}
void usage(  )
{
    std::cerr << "Usage is " << pname << 
        " [options] [file-list]\n";
    std::cerr << "Options\n";
    std::cerr << "  -h          h\n";
    std::cerr << "  -l<number>  Number of lines\n";
    std::cerr << "  -o<name>    Set output file name\n";
    exit (8);
}

int main(int argc, char *argv[])
{
    pname = argv[0];

    while ((argc > 1) && (argv[1][0] == '-')) {
        
        switch (argv[1][1]) {
            
            case 'h':
                h = 1; 
                break;
            
            case 'o':
                op = &argv[1][2];
                break;
            
            case 'l':
                lmax = atoi(&argv[1][2]);
                break;
            default:
                std::cerr << "Wrong option " << argv[1] <<'\n';
                usage(  );
        }
        
        ++argv;
        --argc;
    }

    if (argc == 1) {
        do_file("print.in");
    } else {
        while (argc > 1) {
          do_file(argv[1]);
          ++argv;
          --argc;
        }
    }
    return (0);
}

No comments:

Post a Comment