How to parse command line parameters.

来源:互联网 发布:如何网络编辑 编辑:程序博客网 时间:2024/05/27 16:43
#include <iostream>using namespace std;//  控制台传的参数:  "./a.out -f /home/in.txt -o /home/out.txt"int main(int argc, char* argv[]) {    //    argv[0]="./a.out";    //    argv[1]="-f";    //    argv[2]="/home/in.txt";    //    argv[3]="-o";    //    argv[4]="/home/out.txt";    //    argc=5;    if (argc < 5) { // Check the value of argc. If not enough parameters have been passed, inform user and exit.        std::cout << "Usage is -in <infile> -out <outdir>\n"; // Inform the user of how to use the program        std::cin.get();        return 0;    } else { // if we got enough parameters...        char* myFile,* myPath, *myOutPath;        std::cout << argv[0]<<endl;        for (int i = 1; i < argc; i++,i++) { /* We will iterate over argv[] to get the parameters stored inside.                                          * Note that we're starting on 1 because we don't need to know the                                          * path of the program, which is stored in argv[0] */            cout<<argv[i]<<"  ";            if (string(argv[i]) == "-f") {                // We know the next argument *should* be the filename:                myFile = argv[i + 1];            } else if (string(argv[i]) == "-p") {                myPath = argv[i + 1];            } else if (string(argv[i]) == "-o") {                myOutPath = argv[i + 1];            } else {                std::cout << "Not enough or invalid arguments, please try again.\n";                return 0;            }            std::cout << argv[i+1] <<endl;        }        std::cin.get();        return 0;    }}
0 0
原创粉丝点击