如果我有超过26个选项,如何使用C ++ getopt_long()?

时间:2011-11-17 14:57:30

标签: c++

这是一个相当假设的问题,但是假设我有3个以相同字母开头的长参数。

--parse or -p
--prune or -r
--pivot or -i

最终,我会开始用尽有意义的单个字母,更重要的是,在GNU getopt_long()配置中很难分配一些有意义的字母。

{"parase", no_argument,       0, 'p'},
{"prune",  no_argument,       0, 'r'},
{"pivot",  required_argument, 0, 'i'}

在这些情况下,最佳做法是什么?

4 个答案:

答案 0 :(得分:7)

您不必为val成员使用可打印字符。此外,它是int,而不是char。它应该只是帮助您确定选项。 (意思是,你不必有相应的短路)。

答案 1 :(得分:5)

您可以选择大写和小写,为您提供52个短选项,但是许多接受长选项的程序甚至不会为某些选项分配短选项,迫使用户仅使用长选项,好的。

答案 2 :(得分:1)

数字0-9可用于。想象一下,一个数据压缩程序要么接受-compression=[0-9],要么接受-[0-9](我不知道这是否适用于getopt)。

此外,也可以使用大写字母。

我理解这是一个假设的问题,但有很多选项,程序可能做得太多或需要配置文件。

答案 3 :(得分:0)

我建议你看看boost program options。它是用于获取命令行参数的通用库。非常容易使用。