相关疑难解决方法(0)

233
推荐指数
11
解决办法
11万
查看次数

如何在C++中解析命令行参数?

可能重复:
C++有哪些参数解析器库?

如果指定程序运行如下,那么在C++中解析命令行参数的最佳方法是什么:

prog [-abc] [input [output]]
Run Code Online (Sandbox Code Playgroud)

STL中有一个库可以做到这一点吗?


有关:

c++ command-line arguments

183
推荐指数
8
解决办法
26万
查看次数

用于C/Unix的参数解析助手

我知道以下内容:

  • 令人尊敬的 getopt(3)
  • 扩展 getopt_long
  • glibc argp用于Unix风格的参数向量的解析器
  • 来自GNOME项目的popt(或其在Glib中的精神继承者)

我确信还有更多我没有使用过甚至没有听过的; 快速谷歌搜索显示Gopt,argtableOptlist.

就个人而言,我argp最喜欢,并且我使用getopt/ 编写的每个程序getopt_long(超出某个复杂的基线)都已转换为使用argp.它比所有GNU风格的约定更加广泛可用popt,比getopt_long文档更强大,更灵活.在缺点方面,它远非最容易使用(由于非常灵活),并且支持它的代码非常冗长(C中的许多内容也是如此).

你用了什么,为什么?

是的,我的意思是C而不是C++.有大量的C++解析器,但我不使用C++.

约翰米利金指出,popt不再维持.我列出它是因为许多程序仍在使用它 - 包括AbiWord,rpm,rsync和samba - 尽管Gnome努力迁移.但我现在也添加了一个指向Glib的参数解析器的链接.


对于C++参数解析,请参阅问题C++有哪些参数解析器库?

c command-line parsing

37
推荐指数
2
解决办法
1万
查看次数

Win32 API命令行参数解析

我正在编写Win32控制台应用程序,它可以使用这样的可选参数启动:

app.exe /argName1:"argValue" /argName2:"argValue"
Run Code Online (Sandbox Code Playgroud)

我是否必须手动解析它(以便能够确定哪些参数存在)来自argc/argv变量,或者Win32 API是否包含一些参数解析器?

c windows winapi command-line command-line-arguments

15
推荐指数
3
解决办法
2万
查看次数

C/C++的选项解析器?

可能重复:
C++有哪些参数解析器库?

我已经做了一些寻找,并且有很多用于命令行选项解析的库,但很难区分它们.有没有人有任何经验?是否比其他任何人更难/更好/更快/更容易/更好?或者我应该自己成长?

c c++ command-line parsing option

12
推荐指数
4
解决办法
2万
查看次数

在C++中从命令行处理参数的最有效方法

有效地在C++中进行命令行参数处理的建议:

注意:仅限Windows

 1:     #include <iostream.h>
 2:     int main(int argc, char **argv)
Run Code Online (Sandbox Code Playgroud)

而不是,例如:

 if ( argc != 3 )  {
      ....
 }
Run Code Online (Sandbox Code Playgroud)

问候

c++ windows

10
推荐指数
4
解决办法
7979
查看次数

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

有没有一种真正有效的方法来处理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; }

c++ command-line-arguments

6
推荐指数
1
解决办法
3422
查看次数

3
推荐指数
3
解决办法
8028
查看次数