Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > boost::program_options аргумент без имени


Автор: Хоббит 8.2.2009, 11:31
Необходимо распарсить строку параметров программы.
Нашел класс в boost
http://www.boost.org/doc/libs/1_37_0/doc/html/program_options/tutorial.html

С строкой когда каждый параметр имеет длинное или короткое имя все получается легко. Но мне надо как то распарсить такую строку

./prog_name cmd --opt1=opt1_val -o opt2_val
И.т.д. Все сложность получить первый аргумент cmd. Конечно я могу его взять из argv[1] ... но мне кажется boost это тоже может.

Автор: Хоббит 8.2.2009, 13:31
Явно не туда запостил. Перенесите пожалуйста в раздел C++.

Автор: vinick 8.2.2009, 14:09
http://www.boost.org/doc/libs/1_37_0/doc/html/program_options/tutorial.html#id3455637

смотри в сторону "positional options"

Автор: Хоббит 8.2.2009, 14:49
Спасибо, уже посмотрел, разобрался.

Код

po::positional_options_description pd;
        pd.add("command", 1);

        // Сохраняем аргументы.
        po::variables_map variableMap;

        po::store(po::command_line_parser(argc, argv).
                  options(desc).positional(pd).run(), variableMap);

        po::notify(variableMap);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)