【问题标题】:Snippet/lib that handles command line arguments parsing/validation处理命令行参数解析/验证的片段/库
【发布时间】:2012-04-17 22:26:47
【问题描述】:

我必须编写一些命令行实用程序,它应该能够接受一堆不同类型的参数以及它们之间的依赖关系。

我懒得重新发明轮子,并假设已经有一些可以处理此类任务的 sn-ps/mini 库。

如果有 api,我可以在其中描述验证规则、默认值等,然后将原始 argc/argv 提供给它并获取解析值的映射,那就太好了。

我需要什么:

  • 键/参数的默认值
  • 验证键/参数(一些键应该是某个范围内的整数,一些键可以采用预定义的字符串值之一)
  • 键/参数之间的依赖关系(如果键 --foo 设置 - 用户还应该为 --bar 键提供值)

谢谢。

【问题讨论】:

  • 看来你的功课很懒惰,如果是,请适当标记Q。
  • getopt/getopt_long 是我常用的,但您的要求超出了它的范围。
  • 如果你找不到这样的库,也许你应该花时间自己做一个库?然后您可以将其用于未来的应用程序,甚至可以将其作为开源发布以供其他人受益?
  • @SirDarius 是的,getopt 对我的需要来说似乎太简单了。
  • 顺便说一句,这样的库往往会落入inner platform effect,因为需要描述默认值、验证、依赖等的DSL,最好直接使用C++编码。跨度>

标签: c++ command-line-arguments code-snippets


【解决方案1】:

你可以使用Boost的库program_options

带有示例的文档在这里:

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

【讨论】:

    猜你喜欢
    • 2014-01-13
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2015-08-12
    相关资源
    最近更新 更多