是否有任何C ++命令行解析库允许带有N个参数的选项

时间:2014-11-10 06:54:56

标签: c++ command-line-arguments

我正在将一个python脚本移植到C ++,并且没有找到表达参数的方法,例如:

--metadata KEY VALUE

在C ++参数中解析我见过的库:

  • 升压:: program_options
  • TCLAP
  • GFLAGS

也许它存在于其中一种可能性中,也许我必须探索其他人,也许我只需要手工完成。

您是否了解支持多个选项参数的C ++命令行选项解析库?

1 个答案:

答案 0 :(得分:1)

标准shell实用程序语法指南不鼓励使用多个参数的命令行标志。所以我怀疑你是否会找到一个处理它的标准库。接受格式的选项更为常见,例如:

--metadata KEY=VALUE

您可能会找到可以帮助您使用该格式的标准库(当然,strtokstd::string::find也可以直接使用)。

如果您真的坚持使用多选项参数设计选项,如果您告诉它不要置换参数,则可以使用getopt_long执行此操作(将+作为{{1}的第一个字符}});您需要做的就是在阅读参数时手动增加optstring。 (即:第一个参数将在optind中,下一个参数在optarg,依此类推。)C ++库中可能存在等效的低级别攻击。