【发布时间】:2013-07-14 17:52:09
【问题描述】:
我正在考虑使用 Boost.Program_options 来解析 C++ 中的命令行。现在,我是一个完整的 C++ 新手,所以我会很感激一些耐心:-) 我什至不知道如何在我的项目中“添加引用”到这个库,但我以后会自己弄清楚。
我已阅读 Boost.Program_options 教程,但我不确定它是否适合我的程序所需的所有要求。实际上,我 90% 肯定我会使用它,但我希望有更多经验的人给我 100% 肯定。
所以,我的要求是:
1) myprogram -mode1
2) myprogram -mode1 filePathWithBlankSpaces
3) myprogram
4) myprogram -mode2 filePathWithBlankSpaces
5) myprogram -mode1 filePathWithBlankSpaces -parameter1 doubleValueOfTheParameter
6) myprogram -help
7) myprogram -mode3 parameter1 parameter2 parameter3 parameter4
8) myprogram -mode4
观察: filePathWithBlankSpaces、parameterX 和 doubleValueOfTheParameter 是参数。
我主要关心的是要求 2,5 和 7。
【问题讨论】:
-
-1。您是否要求为您阅读文档?谢谢,但没有。
-
7) 是有问题的。我想你需要说
myprogram -mode3 "p1 p2 p3 p4"——也就是说,在参数周围加上引号。鉴于您的要求,编写自己的命令行解析器并不难。 -
boost program_options 几乎遵循 unix 约定,所以只要字符串用引号括起来,空格就不是问题,支持
double,支持std::vector。那么有什么问题呢?