C++ini文件操作

C/C++ INI文件操作 C/C++ INI文件操作实现代码

提示:这里可以添加系列文章的所有文章的目录,目录需要是的自己手动添加
利用C++实现ini文件读取保存及代码案例


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


一.ini文件结构

ini文件是由若干个节(Sction)组成,每个节又由若干个键(Key)组成。
总体而言ini文件由节名、键名、键值组成。形式如下:
[节名]
键名 = 键值
备注:一个INI文件,可以用多个节。


二.ini文件的读写操作函数

涉及到的变量名:
LPCTSTR lpAppName, //节名
LPCTSTR lpKeyName, //键名
LPCTSTR lpString, //键值
LPCTSTR lpFileName, //保存的文件
参数说明:
参数说明:
lpAppName:指定节名,以空终止结尾的字符串。如果INI文件中节名不存在,将创建一个节名。
lpKeyName:键名,以空终止结尾的字符串。如果INI文件中该键名不存在,将创建一个键名。如果该参数为NULL,包括节及节下的所有项目都将被删除。
lpString:写到键值中的数据,以空终止结尾的字符串。
lpFileName:INI文件的名称,以空终止结尾的字符串。指定需要写入数据的INI文件,如果指定的INI文件不存在将创建。

1.写操作:WritePrivateProfileString

需要包含头文件#include<Windows.h>
该函数用于向INI文件中写入一个字符串数据。
函数原型:

BOOL WritePrivateProfileString(
	LPCTSTR lpAppName, //节名
    LPCTSTR lpKeyName, //键名
    LPCTSTR lpString, //键值
    LPCTSTR lpFileName, //保存的文件
)

返回值:
如果函数成功将字符串复制到初始化文件,返回值是非零。
如果函数失败,刷新缓存版本的最近访问初始化文件,返回值是零。

2.读操作1:GetPrivateProfileString

该函数用于获取INI文件中的键值。
函数原型:

DWORD GetPrivateProfileString(
	LPCTSTR lpAppName, //节名
    LPCTSTR lpKeyName, //键名
    LPCTSTR lpDefault, //默认值
    LPTSTR lpReturnedString, //读取的值
    DWORD nSize, //lpReturnedString缓冲区的大小
    LPCTSTR lpFileName, //INI文件名
)

返回值:是字符复制到缓冲区的数量,不包括终止null字符。

3.读操作2:GetPrivateProfileInt

该函数用于从INI文件中获取整型数据。
该函数原型:
代码如下(示例):

UINT GetPrivateProfileInt(
	LPCTSTR lpAppName,//节名
    LPCTSTR lpKeyName, //键名
    INT nDefault, //默认值
    LPCTSTR lpFileName,//INI文件名
)

函数返回实际读取的整数值

4.返回INI文件中的所有节名:GetPrivateProfileSectionNames

该函数用于返回INI文件中的所有节名。
函数原型:

DWORD GetPrivateProfileSectionNames(
	LPTSTR lpszReturnBuffer, //接收节名的数据缓冲区
    DWORD nSize, //缓冲区大小
    LPCTSTR lpFileName,//INI文件
)

返回值:
返回值指定数量的字符复制到指定的缓冲,不包括终止null字符。
如果缓冲区没有达到足以包含所有相关的部分名称指定的初始化文件,返回值等于指定的长度nSize - 2.

5.获取指定节下的所有的键名和键值:GetPrivateProfileSection

该函数用于获取指定节下的所有的键名和键值。
函数原型:

DWORD GetPrivateProfileSection(
	LPCTSTR lpAppName, //节名
    LPTSTR lpReturnedString, //接收数据缓冲区
    DWORD nSize, //缓冲区大小
    LPCTSTR lpFileName, //INI文件
)

三.使用案例

示例程序如下:

#include<Windows.h>
void Test()
{
    LPCTSTR lpFileName = TEXT("D:\\wo.ini");
    //写入配置
    BOOL res = ::WritePrivateProfileString(TEXT("app"), TEXT("name"), TEXT("1"), lpFileName);
    //读配置
    WCHAR content[100];
    DWORD v = ::GetPrivateProfileString(TEXT("app"), TEXT("name"), TEXT(""), content, 100, lpFileName);
    //读数值
    DWORD resv = ::GetPrivateProfileInt(TEXT("app"), TEXT("name"), 0, lpFileName);
    //读取所有节名
    resv == ::GetPrivateProfileSectionNames(content, 100, lpFileName);
    //读取节下的所有键值
    resv = ::GetPrivateProfileSection(TEXT("app"), content, 100, lpFileName);
}

总结

以上就是ini文件的读写配置操作。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值