c++ - 访问与命令行参数关联的整数列表

标签 c++ gflags

我在 C++ 中使用 gflags 来解析命令行参数。我想要一个接受参数列表的命令行标志。例如下面示例中的 param

./myprog --param 0 1 2 3

如何访问与此参数关联的整数列表?

最佳答案

gflags不支持数组输出,只是跳过未知数据,所以可以选择:
选择 1,在 gFlags 之前手动解析 args,但将参数添加到 gflags - 为了不出错解析,例如:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <vector>
    #include <gflags/gflags.h>

   DEFINE_string(param, "string", "string"); 

   int main (int argc, char **argv) 
   {
        vector<int> param;
        for (int i = 0; i < argc; i++) 
        {
            if (!strcmp(argv[i], "--param")) 
            {
                for (++i; i < argc; i++) 
                {
                    if (!isdigit(argv[i][0]))
                        break;
                    param.push_back(atoi(argv[i]));
                }
            }
        }
        gflags::ParseCommandLineFlags(&argc, &argv, false); 
        return 0;
    }     


选择二:
将您的输入命令行修改为:--param 0,1,2,3
并在 gFlags 中将参数作为字符串接收,用 ',' 拆分字符串并转换为整数数组。

关于c++ - 访问与命令行参数关联的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125887/

相关文章:

windows-8 - Microsoft 是否已弃用 GFlags 和 UMDH?

debugging - 在应用程序的多个实例的第一次机会异常时生成转储

c++ - 如何在 C++ 中释放结构体指针数组?

c++ - 使用 "pointer to volatile"是否始终阻止编译器优化?

c++ - 如何将 tesseract-ocr 库集成到 CMakeLists.txt 中?

debugging - gflags 不适用于 64 位 Windows 7,但适用于 32 位环境

google-app-engine - GAE 不导入 gflags

C++如何在不调用构造函数的情况下分配对象

c++ - 无法增加 QToolButton 的大小(按钮样式设置为 Qt::ToolButtonTextBesideIcon)

react-native - Mojave + Xcode 10构建在glog config.h,gflags/gflags.h上失败