欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用C++的inipp庫(kù)處理配置文件.ini的示例詳解

 更新時(shí)間:2024年01月14日 09:45:56   作者:tan code  
一個(gè)ini文件由多個(gè)節(jié)section組成,每個(gè)節(jié)由多個(gè)鍵值對(duì)組成,本文給大家介紹了使用第三方庫(kù)inipp來(lái)操作ini文件,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下

ini 文件簡(jiǎn)介

一個(gè)ini文件由多個(gè)節(jié)section組成,每個(gè)節(jié)由多個(gè)鍵值對(duì)組成。

[Database]
Host = localhost
Port = 3306
Username = myuser
Password = mypassword

[AppSettings]
LogLevel = 2
MaxConnections = 10

inipp庫(kù)

使用第三方庫(kù)inipp來(lái)操作ini文件。
地址:https://github.com/mcmtroffaes/inipp
使用時(shí)需要將inipp.h頭文件包含,還需要包含文件處理的頭文件 fstream

使用例子

常用的兩個(gè)函數(shù):
ini.parse(is); 解析整個(gè)ini文件
inipp::get_value(ini.sections[“Database”],“Host”, host_value) 訪問(wèn)值

#include "inipp.h"
#include <fstream>
#include <string>

int main()
{
    inipp::Ini<char> ini;
    std::ifstream is("config.ini");
    if (!is) {
        std::cerr << "error: open config.ini failed" << std::endl;
        return 1;
    }
    ini.parse(is);

    std::cout << "原始 INI 文件" << std::endl;
    ini.generate(std::cout);

    ini.strip_trailing_comments();
    ini.default_section(ini.sections["DEFAULT"]);
    ini.interpolate();

    std::cout << "經(jīng)過(guò)默認(rèn)部分和插值后的 INI 文件:" << std::endl;
    ini.generate(std::cout);

    std::cout << "訪問(wèn)值" << std::endl;
    std::string host_value;
    if(inipp::get_value(ini.sections["Database"],"Host", host_value))
    {
        std::cout << "Host = " << host_value << std::endl;
    }else
    {
        std::cout << "host = " << "not found" << std::endl;
    };
    

    return 0;

}

輸出結(jié)果

補(bǔ)充

為什么 輸出的ini文件和原來(lái)的ini文件的節(jié)順序不一樣?

INI 文件的節(jié)(sections)在文件中的順序通常不受保留,因?yàn)镮NI文件格式并沒(méi)有規(guī)定節(jié)的順序。因此,當(dāng)你使用一些庫(kù)或工具讀取和寫入INI文件時(shí),它們可能會(huì)重新排列節(jié)的順序。

對(duì)于 inipp 庫(kù),它在內(nèi)部使用了 std::map 來(lái)存儲(chǔ)節(jié)和鍵值對(duì),而 std::map 是一個(gè)基于紅黑樹(shù)的有序容器。這意味著它會(huì)按照鍵的排序順序來(lái)存儲(chǔ)數(shù)據(jù),因此,在生成INI文件時(shí),節(jié)和鍵值對(duì)的順序可能與原始文件中的順序不同。

以上就是使用C++的inipp庫(kù)處理配置文件.ini的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于C++ inipp庫(kù)處理文件.ini的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++中std::tuple和std::pair的實(shí)現(xiàn)

    C++中std::tuple和std::pair的實(shí)現(xiàn)

    std::tuple和std::pair是兩種極具實(shí)用性的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了C++中std::tuple和std::pair的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • C++性能剖析教程之switch語(yǔ)句

    C++性能剖析教程之switch語(yǔ)句

    除了用嵌套if語(yǔ)句外,C++中還提供switch語(yǔ)句,又稱為“開(kāi)關(guān)語(yǔ)句”,用來(lái)實(shí)現(xiàn)多分支(多選一),下面這篇文章主要給大家介紹了關(guān)于C++性能剖析教程之switch語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • 基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探討

    基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探討

    本篇文章是對(duì)在c中使用ftruncate()前需要fflush(),使用后需要rewind()進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中的對(duì)象指針總結(jié)

    C++中的對(duì)象指針總結(jié)

    以下是對(duì)C++中的對(duì)象指針進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn)

    C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn)

    本文主要介紹了C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • vs運(yùn)行時(shí)報(bào)C4996代碼錯(cuò)誤的問(wèn)題解決

    vs運(yùn)行時(shí)報(bào)C4996代碼錯(cuò)誤的問(wèn)題解決

    C4996錯(cuò)誤的意思:是VS覺(jué)得strcpy這函數(shù)不安全,建議你使更安全的函數(shù),那么如何解決呢,本文主要介紹了vs運(yùn)行時(shí)報(bào)C4996代碼錯(cuò)誤的問(wèn)題解決,感興趣的可以了解一下
    2024-01-01
  • C語(yǔ)言動(dòng)態(tài)鏈表實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)

    C語(yǔ)言動(dòng)態(tài)鏈表實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言動(dòng)態(tài)鏈表實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C++語(yǔ)言編寫寫日志類

    C++語(yǔ)言編寫寫日志類

    這篇文章主要介紹了C++語(yǔ)言編寫寫日志類的相關(guān)資料,支持寫日志級(jí)別設(shè)置、支持多線程、支持可變形參表寫日志,需要的朋友可以參考下
    2015-12-12
  • 約瑟夫經(jīng)典問(wèn)題擴(kuò)展成雙向約瑟夫問(wèn)題

    約瑟夫經(jīng)典問(wèn)題擴(kuò)展成雙向約瑟夫問(wèn)題

    今天小編就為大家分享一篇關(guān)于約瑟夫經(jīng)典問(wèn)題擴(kuò)展成雙向約瑟夫問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 基于C++編寫一個(gè)Json解析器

    基于C++編寫一個(gè)Json解析器

    這篇文章主要為大家詳細(xì)介紹了如何基于C++編寫一個(gè)Json解析器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-03-03

最新評(píng)論