您的位置:首页 > 其它

How to parse command line parameters.

2017-02-09 11:03 453 查看
#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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息