C++操作INI文件常用Windows API或第三方库SimpleIni。Windows API如GetPrivateProfileString适用于读取字符串、整数及写入键值对,仅限Windows平台;SimpleIni库跨平台,支持Unicode和注释,通过CSimpleIniA类加载、读取、修改并保存配置,适合多平台项目。示例展示了读写Settings节中的Username和Port值,INI文件由节、键、值构成,可含注释。选择方法需根据平台需求决定。

在C++中操作INI配置文件,常用的方法是使用Windows API提供的函数,或者借助第三方跨平台库。INI文件是一种简单的文本配置文件,结构清晰,适合存储程序的配置信息。下面介绍几种常见的C++操作INI文件的方法。
使用Windows API操作INI文件
Windows系统提供了四个API函数来读写INI文件,适用于Windows平台开发:
- GetPrivateProfileString:读取指定键的值
- WritePrivateProfileString:写入键值对
- GetPrivateProfileInt:读取整数类型的值
- GetPrivateProfileSection:读取整个节的内容
示例代码:
#include <windows.h>
#include <iostream>
#include <string>
<p>int main() {
char buffer[256];</p><pre class='brush:php;toolbar:false;'>// 读取字符串
GetPrivateProfileString("Settings", "Username", "default", buffer, 256, "config.ini");
std::string username(buffer);
std::cout << "Username: " << username << std::endl;
// 读取整数
int port = GetPrivateProfileInt("Settings", "Port", 8080, "config.ini");
std::cout << "Port: " << port << std::endl;
// 写入数据
WritePrivateProfileString("Settings", "Username", "admin", "config.ini");
WritePrivateProfileString("Settings", "Port", "9000", "config.ini");
return 0;}
立即学习“C++免费学习笔记(深入)”;
注意:这些函数只能在Windows环境下使用,且需要链接kernel32.lib(通常自动包含)。
使用第三方库(如SimpleIni)
如果需要跨平台支持(如Linux、macOS),推荐使用轻量级开源库SimpleIni。它支持Unicode、注释保留,并且只有一个头文件,易于集成。
使用步骤:
- 从 https://github.com/brofield/simpleini 下载
SimpleIni.h - 将头文件加入项目
- 包含并使用
示例代码:
#include "SimpleIni.h"
#include <iostream>
<p>int main() {
CSimpleIniA ini;
ini.SetUnicode();</p><pre class='brush:php;toolbar:false;'>// 从文件加载
SI_Error rc = ini.LoadFile("config.ini");
if (rc < 0) {
std::cout << "无法加载配置文件" << std::endl;
return 1;
}
// 读取值
const char* user = ini.GetValue("Settings", "Username", "default");
long port = ini.GetLongValue("Settings", "Port", 8080);
std::cout << "User: " << user << ", Port: " << port << std::endl;
// 修改或添加值
ini.SetValue("Settings", "Username", "newuser");
ini.SetLongValue("Settings", "Port", 8888);
// 保存到文件
rc = ini.SaveFile("config.ini");
if (rc < 0) {
std::cout << "保存失败" << std::endl;
}
return 0;}
立即学习“C++免费学习笔记(深入)”;
INI文件格式示例
上述代码对应的config.ini文件内容如下:
[Settings] Username=admin Port=9000 # 这是注释 LogLevel=info
结构由节(section)、键(key)、值(value)组成,支持注释。
基本上就这些。Windows API适合纯Windows项目,SimpleIni更适合跨平台或需要更好控制的场景。选择合适的方法可以让配置管理更简单可靠。











