2014-11-25 3 views
1

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

./myprog --param 0 1 2 3 

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

+0

Какой язык вы используете? – Scooter

+0

Я использую C++ (отредактированный вопрос) –

+0

Вероятно, нужно добавить тег C++, чтобы получить больше уведомления. – Scooter

ответ

2

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, Разбивает строку по «» и преобразовать в массив целого числа.

+0

Я думаю, что выбор 2 лучше. Я попробую. –

Смежные вопросы