GNU GetOpt.
А простое использование в качестве примера GetOpt:
// C/C++ Libraries:
#include <string>
#include <iostream>
#include <unistd.h>
// Namespaces:
using namespace std;
int main(int argc, char** argv) {
int opt;
bool flagA = false;
bool flagB = false;
// Shut GetOpt error messages down (return '?'):
opterr = 0;
// Retrieve the options:
while ( (opt = getopt(argc, argv, "ab")) != -1 ) { // for each option...
switch ( opt ) {
case 'a':
flagA = true;
break;
case 'b':
flagB = true;
break;
case '?': // unknown option...
cerr << "Unknown option: '" << char(optopt) << "'!" << endl;
break;
}
}
// Debug:
cout << "flagA = " << flagA << endl;
cout << "flagB = " << flagB << endl;
return 0;
}
можно также использовать optarg, если у Вас есть опции, которые принимают аргументы.
Существуют эти инструменты в GNU C Библиотека, которая включает GetOpt.
при использовании QT и как интерфейс GetOpt, froglogic опубликовал хороший интерфейс здесь .
И существует библиотека Google доступны.
Действительно, парсинг командной строки "решен". Просто выберите тот.
argstream
весьма схоже с boost.program_option
: это разрешает связывать переменные с опциями, и т.д. Однако это не обрабатывает опции, сохраненные в конфигурационном файле.
Есть пара парсеров аргументов C++, вы можете попробовать этот из http://clp.sourceforge.net/, очень простой и удобный.
Попробуйте библиотеку CLPP. Это простая и гибкая библиотека для разбора параметров командной строки. Только для заголовков и кроссплатформенная. Использует только библиотеки ISO C++ и Boost C++. ИМХО она проще, чем Boost.Program_options.
Библиотека: http://sourceforge.net/projects/clp-parser/
26 октября 2010 - новый релиз 2.0rc. Исправлено множество ошибок, полный рефакторинг исходного кода, исправлена документация, примеры и комментарии.