Существует ли какая-либо кроссплатформенная библиотека C ++ с открытым исходным кодом для создания меню для проектов командной строки? - PullRequest
1 голос
/ 16 февраля 2011

Итак, что мне нужно на стороне разработчика, это что-то вроде

addoption("-use-something", "Use Something instead of Some other thing", localVarName, desiredValue, defauultValue);

В то время как на стороне пользователя я хочу увидеть 3 вещи

  • Сначала нужно установить параметры, если они былипередается в качестве параметров / аргументов приложения (например, из start my.exe -use-something)
  • секунда - чтение пользовательского ввода для ключевого слова «помощь» и отслеживание всех возможных команд с описаниями
  • последняя - чтение в приложениикоманды запуска, если некоторые разработчики cin.get () этого еще не сделали

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Посмотрите на ответы Опции парсеров для C / C ++?

1 голос
/ 16 февраля 2011

Вы должны использовать Boost.Program_options .Пример из учебника :

// Declare the supported options.
po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("compression", po::value<int>(), "set compression level")
;

po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);    

if (vm.count("help")) {
    cout << desc << "\n";
    return 1;
}

if (vm.count("compression")) {
    cout << "Compression level was set to " 
 << vm["compression"].as<int>() << ".\n";
} else {
    cout << "Compression level was not set.\n";
}
...