c++ boost 读写ini配置文件
·
//g++ main.cpp -lboost_system -lboost_filesystem
#include <iostream>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/property_tree/ptree.hpp>
using namespace std;
#define FILE_MAX_SIZE 1024*40
int main(int argc, char *argv[])
{
cout << "Hello World!" << endl;
//读ini文件 文件已经存在
if(!boost::filesystem::exists("config.ini")) {
cerr<<"config.ini not exists."<<endl;
return -1;
}
boost::property_tree::ptree root_node, tag_system;
boost::property_tree::ini_parser::read_ini("config.ini", root_node);
tag_system = root_node.get_child("System");
if(tag_system.count("number") != 1) {
cerr<<"reboot_cnt node not exists."<<endl;
}
int cnt = tag_system.get<int>("number");
cout<<"reboot_cnt : "<<cnt<<endl;
//修改配置文件参数
root_node.put<int>("System.number", 10);
boost::property_tree::ini_parser::write_ini("config.ini", root_node);
// 读取整个文件
if(!boost::filesystem::exists("config.ini")) {
cerr<<"config.ini not exists."<<endl;
return -1;
}
char *data = (char*)malloc(sizeof(char) * FILE_MAX_SIZE);
boost::filesystem::ifstream ifstream("config.ini",ios_base::in);
ifstream.read(data, FILE_MAX_SIZE);
cout<<"data : "<<endl;
cout<<data<<endl;
free(data);
ifstream.close();
//写ini文件 文件不存在
if(!boost::filesystem::exists("config_2.ini")) {
boost::filesystem::ofstream ofstream("config_2.ini", ios_base::out);
ofstream<<"[System]";
ofstream<<"\n";
ofstream<<"name=zhangsan";
ofstream.close();
}
return 0;
}
//config.ini
[System]
number=3
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)