百科问答小站 logo
百科问答小站 font logo



C/C++有什么库可以完成命令行参数解析? 第1页

  

user avatar   super-huan0630 网友的相关建议: 
      

看了原问题,现在主要针对现问题回答一下。

首先列举一下我已知的命令行参数解析库:

  • getopt系列函数
  • cmdline
  • gflags
  • Boost.Program_options
  • suboptions
  • argp
  • Argtable
  • FFlags

首先说getopt系列函数

这个函数库,可以简单处理长参数、短参数,并且可以处理他们的一些附属的参数。简单的命令行参数处理则可以使用该库。该库适用于C和CPP。

该库是POSIX的函数库,微软的msvc似乎没有,但是应该有win32移植的库。

cmdline

该库只有一个头文件,不需要链接其他库,非常方面。但是该库应该只可以用于CPP而不能用于C,它使用了OOP。

gflags

该库的爹是Google,比较有实力,并且也比较强大。但是该库应该只适用于CPP。另外该库,学习成本会比较高(相对于cmdline和get_opt而言)。

FFlags

该库是我自己设计的,用在自己的小项目上(因为getopt不能用在msvc上,而我又懒得找win32的移植库)。同时,getopt又没办法实现类似于git add这样子对子程序的支持(没法原生实现),因此我决定自己写个简单的。

fflags是基于C语言的命令行参数解析程序,它可以支持解析unix-likewindows风格的命令行程序。支持使用子程序,例如math sub xxx,其中submath的子程序,不同的子程序可以使用不同的解析方式

其他库

其他库我基本没怎么使用过,据说Boost.Program_options也是非常常用的,但是依赖会比较多。




  

相关话题

  有 C 语言基础,选择 C#、C++、Java、Swift 中的哪一个进一步学习更合适? 
  LeetCode上 C++ 官方题解为什么有很多没有写delete,不会内存泄漏么?面试时也可以么? 
  为什么这个程序电脑运行的结果和手机运行的不一样?数值小的时候一样? 
  随着互联网的崛起,还有必要学习 C++ 吗?貌似 C++ 越来越难找工作了... 
  C++ 的 switch 为什么不自动加 break? 
  有人对 C++ 基本数据类型采用 int x{5}; 的方式进行初始化吗? 
  C++ 有提供像是 C 中 realloc() 这样的函数的新版本吗? 
  如何理解互斥锁、条件锁、读写锁以及自旋锁? 
  有什么C可以实现但C++不能实现的东西吗? 
  C++过于复杂为什么不被淘汰? 

前一个讨论
为什么民国时期至新中国那段时期好多物理学家是哲学学位,明明是搞物理的?
下一个讨论
有没有彩色的流星?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利