What's an effective way to parse command line parameters in C++?
Is there a really effective way of dealing with command line parameters in C++?
What I'm doing below feels completely amateurish, and I can't imagine this is how command line parameters are really handled (atoi, hard-coded argc checks) in professional software.
// Command line usage: sum num1 num2
int main(int argc, char *argv[])
{
if (argc < 3)
{
cout << "Usage: " << argv[0] << " num1 num2n";
exit(1);
}
int a = atoi(argv[1]);
int b = atoi(argv[2]);
int sum = a + b;
cout << "Sum: " << sum << "n";
return 0;
}
You probably want to use an external library for that. There are many to chose from.
Boost has a very feature-rich (as usual) library Boost Program Options.
My personal favorite for the last few years has been TCLAP -- purely templated, hence no library or linking, automated '--help' generation and other goodies. See the simplest example from the docs.
You could use an already created library for this
http://www.boost.org/doc/libs/1_44_0/doc/html/program_options.html
if this is linux/unix then the standard one to use is gnu getopt
http://www.gnu.org/s/libc/manual/html_node/Getopt.html
链接地址: http://www.djcxy.com/p/40582.html上一篇: >在C ++中调用Method
