c++ - 使用 optionparser.h 解析带有可选参数的 C++ 命令行参数
问题描述
optionparser.h(Lean Mean C++ Option Parser)文件中的所有示例看起来都没有使用任何选项参数。我欣然承认我不是一个出色的 C++ 程序员。我只是想要一些带有数字参数的选项。类似于 [--help --count_to 5 --jump 3 --noecho]。
这是该文件中有关使用情况的剪辑:
enum optionIndex { UNKNOWN, HELP, PLUS, SKIP1, SKIP2};
const option::Descriptor usage[] =
{
{UNKNOWN, 0, "", "",option::Arg::None, "USAGE: MyPgm [options]\n\n" "Options:" },
{HELP, 0,"h", "help",option::Arg::None, " --help -h \tPrint usage and exit." },
{PLUS, 0,"p","plus",option::Arg::None, " --plus, -p \tIncrement count." },
{SKIP1, 0,"","nodcs",option::Arg::None, " --nodcs, \tMy Option1" },
{SKIP2, 0,"","noacs",option::Arg::None, " --noacs, \tMy Option2" },
};
int main(int argc, char* argv[])
{
argc-=(argc>0); argv+=(argc>0); // skip program name argv[0] if present
option::Stats stats(usage, argc, argv);
option::Option options[stats.options_max], buffer[stats.buffer_max];
option::Parser parse(usage, argc, argv, options, buffer);
if (parse.error())
return 1;
if (options[HELP] || argc == 0) {
option::printUsage(std::cout, usage);
return 0;
}
std::cout << "--plus count: " <<
options[PLUS].count() << "\n";
for (option::Option* opt = options[UNKNOWN]; opt; opt = opt->next())
std::cout << "Unknown option: " << opt->name << "\n";
for (int i = 0; i < parse.nonOptionsCount(); ++i)
std::cout << "Non-option #" << i << ": " << parse.nonOption(i) << "\n";
}
我看到 option::Arg 可以是 NONE 或 Optional,但我不知道如何引用可选参数。我也确信这段代码可以做的比我现在要求的要多得多。
解决方案
推荐阅读
- dji-sdk - GPSDetail 字段的含义
- javascript - 数组映射并跳过未定义的动态对象属性
- elasticsearch - 基于 ES REST API 查询创建 Kibana 可视化
- java - 在 Java EE 上具有 xa-transaction 的 IBM 客户端
- php - PHP继承:如何从继承的父方法访问子属性?
- excel-formula - 尝试在 EXCEL 中按开始日期和结束日期之间的天数拆分广告系列名称
- stm32 - STM32 spi接收程序不带hal
- html - 为什么当我向它添加显示 flex 时项目垂直居中?
- ngxs - 使用 Immer 和 NGXS 时对象仍然冻结
- c++ - 显式转换运算符和常量引用限定