C++读写配置文件"*.ini

前两天遇到了一个读写“ini”配置文件的问题,上网搜了一下,发现网上资料很全,这里只是自己对这个问题的一个总结学习,仅供参考!
ReadWriteINI.h:
#ifndef WRITEREADINI_H #define WRITEREADINI_H #include #include "ui_Writereadini.h" class WriteReadINI : public QMainWindow {     Q_OBJECT public:     WriteReadINI(QWidget *parent = 0);     ~WriteReadINI();
    void WriteINI();     void ReadINI();
    QStringList list; private:     Ui::WriteReadINIClass ui; }; #endif // WRITEREADINI_H

ReadWriteINI.cpp:
 
  
#include "Writereadini.h" #include #include #include #include QStringList list; WriteReadINI::WriteReadINI(QWidget *parent) : QMainWindow(parent) {     ui.setupUi(this);     WriteINI();     ReadINI();     writeToTable(); } WriteReadINI::~WriteReadINI() { } void WriteReadINI::WriteINI() {     QSettings settings("config.ini", QSettings::IniFormat); // 当前目录的INI文件     settings.beginGroup("a");     settings.setValue("a1",14.2);     settings.setValue("a2",14.3);     settings.setValue("a3",14.4);     settings.endGroup();          settings.beginGroup("b");     settings.setValue("b1",2.0);     settings.setValue("b2",2.1);     settings.setValue("b3",2.2);     settings.endGroup(); } void WriteReadINI::ReadINI() {     QVariant strConfigValue;     QString strConfigGroup;     QString strConfigKey;     QString strfile  = "config.ini"; // 文件地址     QSettings user_cfg(strfile,QSettings::IniFormat);     user_cfg.setIniCodec("GBK");    // 设置读的编码格式     // 读配置文件     //"a"组     strConfigGroup = "a";     user_cfg.beginGroup(strConfigGroup);     // a 组第一个数据     strConfigKey = "a1";                           // 键     strConfigValue = user_cfg.value(strConfigKey); // 读     qDebug() << "---------------------------------------a1 = "<a 组第二个数据     strConfigKey = "a2";     strConfigValue = user_cfg.value(strConfigKey);     qDebug() << " ---------------------------------------a2 = "<
     // a 组 第三个数据      strConfigKey = "a3";      strConfigValue = user_cfg.value(strConfigKey);      qDebug() << "---------------------------------------a3 = "<      list << strConfigValue.toString();     user_cfg.endGroup();                          // 结束本组的读     
    strConfigGroup = tr("b");     user_cfg.beginGroup(strConfigGroup);     strConfigKey = "b1";     strConfigValue = user_cfg.value(strConfigKey);     qDebug() << " ---------------------------------------b1 = "<---------------------------------------b2 = "<---------------------------------------b3 = "<

config.ini
 
  
[a]
a1=14.2 a2=14.3 a3=14.4
[b] b1=2.0 b2=2.1 b3=2.2

    以上是简单的读写过程。
    在读配置文件的时候还出现了读出空串的情况,纠结了好大一会,最终看到一篇文章上说到:读的值中有分号的时候读不出来,他给出的处理办法是为配置文件的值加上双引号。回头看我的配置文件,发现没有读出数据的都是有”,“的数据,然后用 双引号给这个数据括了起来,解决!
    总结:个人以为配置文件中的字符串可以用双引号括起来,以防出现特殊字符,在不了解的情况下读出空串。

你可能感兴趣的:(C++读写配置文件"*.ini)