在C ++中解析命令行参数的有效方法是什么?

有没有一种真正有效的方法来处理C ++中的命令行参数?

我在下面做的事情完全是业余的,我无法想象这是如何在专业软件中处理命令行参数(atoi,硬编码的argc检查)。

// 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; }

您可能想为此使用外部库。 有很多选择。

Boost有一个功能非常丰富(如往常一样)的库Boost Program Options。

过去几年我个人最喜欢的是TCLAP--纯粹是模板化的,因此没有图书馆或链接,自动化的“帮助”一代和其他好东西。 从文档中查看最简单的示例。


你可以使用一个已经创建的库来做到这一点

http://www.boost.org/doc/libs/1_44_0/doc/html/program_options.html


如果这是linux / unix,那么使用标准的是gnu getopt

http://www.gnu.org/s/libc/manual/html_node/Getopt.html

链接地址: http://www.djcxy.com/p/40581.html

上一篇: What's an effective way to parse command line parameters in C++?

下一篇: Merge all changes from another branch as a single commit