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

Tim*_*Tim 6 c++ command-line-arguments

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

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

// Command line usage: sum num1 num2

int main(int argc, char *argv[])
{
   if (argc < 3)
   {
      cout << "Usage: " << argv[0] << " num1 num2\n";
      exit(1);
   }
   int a = atoi(argv[1]);    int b = atoi(argv[2]);    int sum = a + b;
   cout << "Sum: " << sum << "\n";
   return 0; }

Dir*_*tel 18

您可能想要使用外部库.有很多可供选择.

Boost具有功能丰富(通常)的库Boost Program Options.

我最近几年个人最喜欢的是TCLAP - 纯粹模板化,因此没有库或链接,自动' - help '代和其他好东西.请参阅文档中最简单的示例.