gpt4 book ai didi

c++ - 从单个标志 C++ 获取多个参数

转载 作者:行者123 更新时间:2023-11-28 01:34:04 24 4
gpt4 key购买 nike

我正在寻找一个库或一种“优雅”的方式来解析我的程序的参数,而不是遵循通常的参数模式。

通常,参数是标志(如 -a)、参数(-a 值)或位置参数,如 here 所示.

如果我的程序采用诸如 -a v1 v2 v3 之类的参数,其中 v1 v2 和 v3 与 -a 直接相关并且本身不是位置参数怎么办。

此外,在我的程序中(手动接收这些参数)我什至可以获得 -a v1 v2 v3 -b x1 x2 x3 其中 -b 也是相关的到 -a 并且在它之外没有意义。

-cat fluffy brown friendly -name snuffles

鼻烟只对给定的猫有意义(这只是一个愚蠢的例子)。

最佳答案

解决这个棘手问题的办法就是停止这样做。一个好的基线指南是 GNU Coding Standards for Command Line Interfaces .

请注意,Bash 或其他 shell 可以帮助您实现简洁的语法,而无需在程序代码中做一些奇怪的事情。例如,在 Bash 中执行此操作而不是 myprog -a v1 v2 v3,您的程序将在 shell 扩展后看到完整且正确的 -av1 -av2 -av3:

myprog -a{v1,v2,v3}
myprog -av{1..3}

通过这种方式,任何用于 CLI 参数解析的合适的库都可以工作,并且您不需要处理无休止的极端情况。

关于 -a -b 的情况,其中 -b 应该是 -a 的参数,一旦你把 -a 放在它前面:

myprog -a{v1,v2,v3,-b,x1,x2,x3}

关于c++ - 从单个标志 C++ 获取多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50148142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com