boost::property_tree 讀取ini配置

應用場景:

在後端服務器項目開發中,須要初始化一個Socket服務器,須要IP地址與對應端口號等參數;另外還可能由於對接數據庫,就還須要數據庫的相關配置參數,如我使用的是MySql數據庫,就須要數據庫服務器的IP地址、端口號、用戶名與密碼,還有數據庫的名稱。如若這些配置信息直接寫到代碼裏,就會給後期佈署帶巨大的麻煩;但本身去造輪子又很麻煩。如今可好了,Boost就提供了這樣的接口。mysql

 

源碼:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
namespace pt = boost::property_tree;

#include <windows.h>

int main(int argc, char** argv)
{
	pt::ptree tree;
	pt::read_ini("config.ini", tree);

	string db_host = tree.get<std::string>("db.host");
	string db_port = tree.get<std::string>("db.port");
	string db_user = tree.get<std::string>("db.user");
	string db_pswd = tree.get<std::string>("db.pswd");
	/*此處是一個示例,mysql的鏈接字符串不是這樣的*/
	cout << "mysql://" << db_user << ":" << db_pswd << "@" << db_host << ":" << db_port << endl;  
	return 0;
}

 

config.ini

[db]
host=127.0.0.1
port=3306
user=dilex
pswd=123

[server]
ip=127.0.0.1
port=8000

 

運行結果:

相關文章
相關標籤/搜索