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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值