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

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


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

文章目录

  • C/C++ INI文件操作 C/C++ INI文件操作实现代码
  • 一.ini文件结构
  • 二.ini文件的读写操作函数
    • 1.写操作:WritePrivateProfileString
    • 2.读操作1:GetPrivateProfileString
    • 3.读操作2:GetPrivateProfileInt
    • 4.返回INI文件中的所有节名:GetPrivateProfileSectionNames
    • 5.获取指定节下的所有的键名和键值:GetPrivateProfileSection
  • 三.使用案例
  • 总结

一.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文件的读写配置操作。

C++ini文件操作相关推荐

  1. c读取ini配置文件_Go-INI - 超赞的Go语言INI文件操作库

    INI 文件(Initialization File)是十分常用的配置文件格式,其由节(section).键(key)和值(value)组成,编写方便,表达性强,并能实现基本的配置分组功能,被各类软件 ...

  2. C# 对Ini文件操作(C# ini文件操作类)

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  3. go 默认http版本_【每日一库】超赞的 Go 语言 INI 文件操作

    点击上方蓝色"Go语言中文网"关注我们,领全套Go资料,每天学习 Go 语言 如果你使用 INI 作为系统的配置文件,那么一定会使用这个库吧.没错,它就是号称地表 最强大.最方便  ...

  4. wince 读写 ini 文件 操作 MFC

    我这篇也是借鉴别人的,分为 inifile.h   inifile.cpp  和应用部分 1. inifile.h  源码 #ifndef INIFILE_H #define INIFILE_H // ...

  5. VC操作INI文件 ,INI文件操作总结,如何操作INI文件,INI文件使用方法小结

    INI文件简介 在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化.将一些信息写入INI文件(initialization file)中,可完成简单的 ...

  6. C++,ini文件操作(包含类)

    什么是ini文件? initialization File,即为初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置.或者作为项目中的配置文件,为整个项目所共用. ...

  7. vc中常用文件操作(二) Ini文件操作

    在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINA ...

  8. python ini文件操作

    ini文件如下 1. 导入 configparser import configparser 2.创建对象 打开文件 cf = configparser.ConfigParser() # 创建管理对象 ...

  9. MFC创建及读写ini文件操作(转)

    判断文件是否存在,如果不存在创建文件并写入相关数据: 1 CFileFind finder; //查找是否存在ini文件,若不存在,则生成一个新的默认设置的ini文件,这样就保证了我们更改后的设置每次 ...

最新文章

  1. Numpy关于数组的基本使用
  2. 编程之基础:数据类型(二)
  3. c# 说说开发通用通信库,尤其是分布式服务的通信
  4. VTK:可视化之PointSize
  5. java 动态编译源代码
  6. VBA实战技巧精粹011:新建只有1张工作表的工作簿
  7. testflight开发者已将您从测试计划中移除_使用 TestFlight 测?试 App
  8. C++语法:vector的使用
  9. java定时任务详解
  10. CCIE-LAB-第十四篇-PIM Sparst+IGMP
  11. easyPR源码解析之chars_segment.h
  12. aspnet实现搜索查询_C#算法设计查找篇之01-顺序查找
  13. centos7 更换为aliyun的yum源
  14. wps怎么全选所有页_wps word中怎么全选一页
  15. 计算机处理器性能排名,cpu天梯图2018最新版 2018电脑cpu处理器性能排行榜
  16. 2021年春季 PAT乙级(复盘)
  17. 力推美团企业版 美团究竟意欲何为?
  18. VSCode悬停提示
  19. 关于网站504问题排查
  20. Linux下网络相关结构体 struct servent

热门文章

  1. Python学习笔记:使用PIL批量合成jpg+png图片,用于水印、合并图片,生成YOLO数据集+标注数据等等
  2. Java遍历包中所有类包括jar包(完整转载)
  3. 【C语言】通讯录实现
  4. Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)
  5. 淘宝客如何通过简书引流?如何成为淘宝客?
  6. jacob java excel_使用 Jacob 操作Excel、Word文件
  7. 强力删除文件或文件夹
  8. python连接数据库生成可视化_python3.6 连接数据库并用matplotlib可视化代码
  9. 课设-药店的药品销售统计系统(排序应用)
  10. 机器学习(四)——Adaboost算法