[boost 학습노트] 명령행 분석 라이브러리(program options)
2581 단어 boost명령줄 해석program_options
// Copyright Vladimir Prus 2002-2004.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
/* The simplest usage of the library.
*/
#include <boost/program_options.hpp>
namespace po = boost::program_options;
#include <iostream>
#include <iterator>
using namespace std;
int main(int ac, char* av[])
{
try {
po::options_description desc("Allowed options");
desc.add_options()
("help,h", "produce help message")
("compression", po::value<double>(), "set compression level")
("include-path,I", po::value<std::string>(), "set path")
("debugflag,D", po::value<bool>(), "set file")
;
po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
if (vm.count("help")) {
cout << desc << "
";
//return 0;
}
if (vm.count("compression")) {
cout << "Compression level was set to "
<< vm["compression"].as<double>() << ".
";
} else {
cout << "Compression level was not set.
";
}
if (vm.count("include-path")) {
cout << "include-path are : "
<< vm["include-path"].as<std::string>() << ".
";
} else {
cout << "include-path was not set.
";
}
if (vm.count("debugflag")) {
cout << "debugflag are : "
<< vm["debugflag"].as<bool>() << ".
";
} else {
cout << "debugflag was not set.
";
}
}
catch(exception& e) {
cerr << "error: " << e.what() << "
";
return 1;
}
catch(...) {
cerr << "Exception of unknown type!
";
}
return 0;
}
위 절차에서는 다음 매개변수를 사용하여 실행합니다.
testDemo --help --compression 12 -I ssssss -D true
결과:
Allowed options: -h [ --help ] produce help message --compression arg set compression level -I [ --include-path ] arg set path -D [ --debugflag ] arg set file Compression level was set to 12. include-path are : ssssss. debugflag are : 1.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cocos2d-x에서 Boost 사용iOS 및 Android 프로젝트에서 Boost를 사용하는 단계 노트 타이틀은 Cocos2d-x로 했지만 C++를 사용하는 프로젝트라면 따로 Cocos2d-x는 없어도 사용 가능 ※ 단, 헤더 전용으로 사용할 수있는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.