当前位置: 首页 > news >正文

Windows开发,ini文件的读写操作

INI文件是什么

INI文件全称为“Initialization File”,即初始化文件的意思,是Windows系统配置文件的存储格式。文件格式一般为“.ini”为后缀的文件。被广泛用于存储系统或软件的配置之中。虽然有些程序的配置文件不是ini后缀,但是打开后其里面的内容格式与ini也有一样的情况。

INI里面的内容为文本格式,可以直接使用文本编辑器查看内容

INI文件格式

INI文件格式也是非常清晰和简洁,是由多个section节和key-value键值对组成的

一个文件可以有若干个section叫做节,每个section下面可以有若干个key-value叫做项

操作INI文件

Windows里面提供了一整套用来对INI文件进行读写操作的API函数,可以在微软帮助手册中查看https://learn.microsoft.com/windows/win32/api/winbase/

这里面提供了两套用于操作INI文件的函数,一套是Profile系列另一套是PrivateProfile系列

其中Profile系列函数是用来操作Windows系统默认的INI文件,即Win.ini,而PrivateProfile系列函数则是可以对用户指定的INI文件进行读写操作

其中GetProfileGetPrivateProfile系列函数是用来读取INI文件

WriteProfileWritePrivateProfile系列函数是用来修改INI文件

关于INI文件操作API的更多详情和详细用法请参考官方文档:https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-getprivateprofileint

下面是一段操作INI文件的示例代码

func() { // 写 WritePrivateProfileString(_T("TestSection"), _T("Author"), _T("Mr.Lu"), _T(".\\test.ini")); WritePrivateProfileString(_T("TestSection"), _T("Blog"), _T("https://blog.csdn.net/weixin_64647426"), _T(".\\test.ini")); WritePrivateProfileString(_T("TestSection"), _T("GitHub"), _T("https://github.com/LaoReng"), _T(".\\test.ini")); // 读 wchar_t wRead[0xFF]{}; GetPrivateProfileString(_T("TestSection"), _T("Author"), _T(""), wRead, sizeof(wRead) / sizeof(*wRead), _T(".\\test.ini")); printf("Author: %ws\n", wRead); memset(wRead, 0, sizeof(wRead)); GetPrivateProfileString(_T("TestSection"), _T("Blog"), _T(""), wRead, sizeof(wRead) / sizeof(*wRead), _T(".\\test.ini")); printf("Blog: %ws\n", wRead); memset(wRead, 0, sizeof(wRead)); GetPrivateProfileString(_T("TestSection"), _T("GitHub"), _T(""), wRead, sizeof(wRead) / sizeof(*wRead), _T(".\\test.ini")); printf("GitHub: %ws\n", wRead); }

运行结果

到这里INI文件的读写操作以及什么是INI文件就介绍完了

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!

http://www.jsqmd.com/news/729945/

相关文章:

  • 产品经理如何逆袭?从入门到精通的AI进阶指南,让你成为产品圈的AI大神!
  • 飞书机器人接入openclaw问题
  • 别再踩坑了!关于QWidget样式表失效,Qt官方文档没明说的两个关键点
  • 手把手教你用BCDBoot修复Windows 11 UEFI启动,告别蓝屏和‘BCD store not found’
  • Warp源码深度解析(四):AI Agent原生集成——MCP协议、代码索引与Skills系统
  • 动态NIAH测试:提升大模型长文本处理能力的关键方法
  • PRIMO R1框架:让机器人具备动态推理能力的工业解决方案
  • hadoop集群设置为什么从节点ping的通主节点,主节点ping不通从节点
  • 高纯度氢气的内部构造,比你想象的更硬核
  • AI建站工具避坑指南:10个高频问题与实用解决方案
  • 如何用rpatool高效管理Ren‘Py游戏资源:从手动操作到自动化处理
  • 有效的括号
  • OpenCV图像处理与视频生成核心技术解析
  • 一念成仙经济学:打造房价永不涨的数字乌托邦,让勤劳真正致富
  • 别再手动一页页导入了!用这个JS脚本,5分钟搞定Illustrator批量打开多页PDF
  • Docker容器里pip install也报磁盘空间不足?可能是你的镜像和卷没管好
  • Arm架构原子浮点运算指令解析与应用
  • 小批量机箱生产如何控制成本?
  • 别再手动搬运数据了!手把手教你用DSP28335的DMA高效搬运ADC采样结果
  • Python大数据处理:超内存数据解决方案全解析
  • STM32C5系列MCU:工业与IoT的Cortex-M33解决方案
  • 别再乱拖控件了!Qt Designer布局管理器实战:从QHBoxLayout到QSplitter,打造自适应UI界面
  • 2026年火锅底料生产厂家排行及选型参考指南:火锅底料源头供应公司、牛油火锅底料厂家、番茄火锅底料厂家、串串火锅底料厂家选择指南 - 优质品牌商家
  • Taotoken 用量看板如何帮助开发者洞察 API 消耗
  • 【计算机毕业设计】基于Springboot的社团管理系统+LW
  • axios 的 GET 请求里,手动写 Content-Type: application/json 基本都会被删掉不是你写法错了是 axios 源码故意这么做的
  • 扩散模型强化学习对齐:TreeGRPO优化与实践
  • 设计模式 - 结构型设计模式 - 装饰模式(Java)
  • 避开RH850U2A的坑:RAM未初始化导致ECC错?Flash驱动安全存放指南
  • Godot 3D网格实时变形插件:原理、应用与自定义开发指南