Доступ к списку целых чисел, связанных с параметром командной строки

Я использую gflags в C++ для анализа параметров командной строки. Я хотел бы иметь флаг командной строки, который принимает список параметров. Например param в примере ниже.

./myprog --param 0 1 2 3

Как я могу получить доступ к списку целых чисел, связанных с этим параметром?

1 ответ

Решение

gflags не поддерживает вывод массива, просто пропускает неизвестные данные, поэтому вы можете выбрать:
Вариант 1, перед gFlags анализировать аргументы вручную, но добавить параметр в 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;
    }     


Выбор 2:
Измените вашу командную строку ввода, например: --param 0,1,2,3
и получить параметр в виде строки в gFlags, разделить строку на ',' и преобразовать в массив целых чисел.

Другие вопросы по тегам