#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;
}
}
How to parse command line parameters.
最新推荐文章于 2022-10-10 14:56:00 发布