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#include #include int main() { char buffer[256];
// 读取字符串 GetPrivateProfileString("Settings", "Username", "default", buffer, 256, "config.ini"); std::string username(buffer); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "Username: " zuojiankuohaophpcnzuojiankuohaophpcn username zuojiankuohaophpcnzuojiankuohaophpcn std::endl; // 读取整数 int port = GetPrivateProfileInt("Settings", "Port", 8080, "config.ini"); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "Port: " zuojiankuohaophpcnzuojiankuohaophpcn port zuojiankuohaophpcnzuojiankuohaophpcn 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" #includeint main() { CSimpleIniA ini; ini.SetUnicode();
// 从文件加载 SI_Error rc = ini.LoadFile("config.ini"); if (rc zuojiankuohaophpcn 0) { std::cout zuojiankuohaophpcnzuojiankuohaophpcn "无法加载配置文件" zuojiankuohaophpcnzuojiankuohaophpcn std::endl; return 1; } // 读取值 const char* user = ini.GetValue("Settings", "Username", "default"); long port = ini.GetLongValue("Settings", "Port", 8080); std::cout zuojiankuohaophpcnzuojiankuohaophpcn "User: " zuojiankuohaophpcnzuojiankuohaophpcn user zuojiankuohaophpcnzuojiankuohaophpcn ", Port: " zuojiankuohaophpcnzuojiankuohaophpcn port zuojiankuohaophpcnzuojiankuohaophpcn std::endl; // 修改或添加值 ini.SetValue("Settings", "Username", "newuser"); ini.SetLongValue("Settings", "Port", 8888); // 保存到文件 rc = ini.SaveFile("config.ini"); if (rc zuojiankuohaophpcn 0) { std::cout zuojiankuohaophpcnzuojiankuohaophpcn "保存失败" zuojiankuohaophpcnzuojiankuohaophpcn std::endl; } return 0;}
立即学习“C++免费学习笔记(深入)”;
INI文件格式示例
上述代码对应的
config.ini文件内容如下:[Settings] Username=admin Port=9000 # 这是注释 LogLevel=info结构由节(section)、键(key)、值(value)组成,支持注释。
基本上就这些。Windows API适合纯Windows项目,SimpleIni更适合跨平台或需要更好控制的场景。选择合适的方法可以让配置管理更简单可靠。











