boost 官网 http://www.boost.org/
下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/
我下载的是 boost_1_53_0.tar.gz
使用系统 ubuntu 12.10
一、解压
tar -zxvf boost_1_53_0.tar.gz得到一个文件夹 boost_1_53_0, 拷贝其子目录 boost 到以下路径
/usr/local/include/
二、编写读取解析ini的类文件
ini.h
/* * File: ini.h * Author: [email protected] * * Created on 2013年3月18日, 下午2:51 */ #ifndef INI_H #define INI_H #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/ini_parser.hpp> #include <string> using namespace std; class Ini{ public: Ini(string ini_file); string get(string path); short int errCode(); private: short int err_code; boost::property_tree::ptree m_pt; }; #endif /* INI_H */
ini.cpp
#include "ini.h" Ini::Ini(string ini_file){ if (access(ini_file.c_str(), 0) == 0) { this->err_code = 0; boost::property_tree::ini_parser::read_ini(ini_file, this->m_pt); } else { this->err_code = 1; } } short Ini::errCode(){ return this->err_code; } string Ini::get(string path){ if (this->err_code == 0) { return this->m_pt.get<string>(path); } else { return ""; } }
三、测试
main.cpp
#include <cstdlib> #include <stdio.h> #include <iostream> #include <string> #include "ini.h" using namespace std; /* * */ int main(int argc, char** argv) { string ini_file = "/home/share/code/CppClass/test1.ini"; Ini ini(ini_file); cout<<ini.get("public.abc")<<endl; return 0; }