Windows程序设计9:文件的读写操作

文章目录

  • 前言
  • 一、文件的写操作WriteFile
    • 1.WriteFile介绍
    • 2.WriteFile实例
  • 二、文件的读操作ReadFile
    • 1.ReadFile简介
    • 2.ReadFile实例
  • 总结


前言

Windows程序设计9:文件的读写操作。


一、文件的写操作WriteFile

1.WriteFile介绍

从文件指针指向的位置开始,将数据写入到一个文件中,支持同步和异步操作。如果文件打开方式没有指明FILE_FLAG_OVERLAPPED,当程序调用成功时,它将实际写入文件的字节数保存到lpNumberOfBytesWritten指明的地址空间中。如果文件要交互使用的话,当函数调用完毕时要记得调整文件指针。函数原型为

BOOL WriteFile(HANDLE       hFile,                // 文件或设备的句柄LPCVOID      lpBuffer,             // 指向要写入的数据的缓冲区DWORD        nNumberOfBytesToWrite,// 要写入的字节数LPDWORD      lpNumberOfBytesWritten, // 实际写入的字节数LPOVERLAPPED lpOverlapped          // 用于异步 I/O 的结构
);

参数HANDLE hFile为文件或设备的句柄,必须是通过 CreateFile 打开的句柄。该句柄必须具有 GENERIC_WRITE 访问权限。

参数LPCVOID lpBuffer为一个指向空类型的指针。指向要写入的数据的缓冲区。缓冲区的数据类型可以是任意类型(如 char*、BYTE* 等)

参数DWORD nNumberOfBytesToWrite为要写入的字节数。如果写入的数据量大于缓冲区大小,可能会导致访问冲突

参数LPDWORD lpNumberOfBytesWritten为指向一个 DWORD 变量的指针,用于接收实际写入的字节数。如果为 NULL,则忽略实际写入的字节数(仅适用于异步 I/O)。是一个传出的值。

参数LPOVERLAPPED lpOverlapped为指向 OVERLAPPED 结构的指针,用于异步 I/O 操作。如果为 NULL,则使用同步 I/O。

返回值:如果函数执行成功,返回 TRUE。如果失败,返回 FALSE。可以通过 GetLastError 获取错误码。

2.WriteFile实例

在D盘中新年快乐.txt文件内写入数据,起始为一个空的文件。
在这里插入图片描述
写入数字12345

	HANDLE handle1 = CreateFile(_T("D:\\新年快乐.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (handle1 != INVALID_HANDLE_VALUE) // 函数执行成功{// int num = 12345; // 写入的数据DWORD rw = 0; // 传出的实际写入大小BOOL bret = WriteFile(handle1, &num, sizeof(num), &rw, NULL);if (bret){MessageBox(NULL, _T("数据写入成功"), _T("提示"), MB_OK);}else{MessageBox(NULL, _T

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10480.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AJAX笔记入门篇

黑马程序员视频地址: 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2https://www.bilibili.com/video/BV1MN411y7pw?vd_source…

洛谷 P10288 [GESP样题 八级] 区间 C++ 完整题解(STL二分法)

本文并非最优解,但能通过。 一、题目链接 P10288 [GESP样题 八级] 区间 - 洛谷 二、解题思路 **本题的大意就是求出a[l~r]间x出现的次数,由于数据较大、较多,所以暴力容易超时。** 首先新建一个mp,mp[x]是一个vector,里…

springboot集成钉钉,发送钉钉日报

目录 1.说明 2.示例 3.总结 1.说明 学习地图 - 钉钉开放平台 在钉钉开放文档中可以查看有关日志相关的api,主要用到以下几个api: ①获取模板详情 ②获取用户发送日志的概要信息 ③获取日志接收人员列表 ④创建日志 发送日志时需要根据模板规定日志…

android主题设置为..DarkActionBar.Bridge时自定义DatePicker选中日期颜色

安卓自定义DatePicker选中日期颜色 背景:解决方案:方案一:方案二:实践效果: 背景: 最近在尝试用原生安卓实现仿element-ui表单校验功能,其中的的选择日期涉及到安卓DatePicker组件的使用&#…

学习串行通信

本文来源: [8-1] 串口通信_哔哩哔哩_bilibili 智谱清言 ------------ 串口(Serial Port): 串口是一种应用非常广泛的通讯接口,串口成本低,容易使用,通信线路简单,可实现两个设…

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…

(二)QT——按钮小程序

目录 前言 按钮小程序 1、步骤 2、代码示例 3、多个按钮 ①信号与槽的一对一 ②多对一(多个信号连接到同一个槽) ③一对多(一个信号连接到多个槽) 结论 前言 按钮小程序 Qt 按钮程序通常包含 三个核心文件: m…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目,admin是8087,gateway是8088,consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目,那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…

C# Winform制作一个登录系统

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 登录 {p…

第11章:根据 ShuffleNet V2 迁移学习医学图像分类任务:甲状腺结节检测

目录 1. Shufflenet V2 2. 甲状腺结节检测 2.1 数据集 2.2 训练参数 2.3 训练结果 2.4 可视化网页推理 3. 下载 1. Shufflenet V2 shufflenet v2 论文中提出衡量轻量级网络的性能不能仅仅依靠FLOPs计算量,还应该多方面的考虑,例如MAC(memory acc…

AJAX案例——图片上传个人信息操作

黑马程序员视频地址&#xff1a; AJAX-Day02-11.图片上传https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p26 图片上传 <!-- 文件选择元素 --><input type"file"…

AI DeepSeek-R1 Windos 10 环境搭建

1、安装&#xff1a; 下载 Python |Python.org CUDA Drivers for MAC Archive | NVIDIA pip 和virtualenv Download Ollama on Windows 如下图 2、下载模型 deepseek-r1 ollama run deepseek-r1 或者可以ollama run deepseek-r1:8b 或 3、安装一个可视化对话Chatbox 下载 …

【AI绘画】MidJourney关键词{Prompt}全面整理

AI绘画整理&#xff0c;MidJourney关键词。喜欢AI绘画的朋友必备&#xff0c;建议收藏&#xff0c;后面用到时供查阅使用。 1、光线与影子篇 中 英 闪耀的霓虹灯 shimmeringneon lights 黑暗中的影子 shadows in the dark 照亮城市的月光 moonlightilluminatingthe cit…

剑指offer 数组 持续更新中...

文章目录 1. 数组中重复的数字1.1 问题描述1.2 方法1: 排序1.3 方法2: 哈希表1.4 方法3: 原地交换 2. 寻找重复数2.1 问题描述2.2 方案1&#xff0c;使用辅助数组2.3 方案2&#xff0c;使用二分 3. 二维数组的查找3.2 方案1&#xff0c;贪心 4. 合并两个有序数组4.1 问题描述4.…

SQLAlchemy 2.0的简单使用教程

SQLAlchemy 2.0相比1.x进行了很大的更新&#xff0c;目前网上的教程不多&#xff0c;以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎&#xff0c;链接到mysql engine crea…

nodejs:express + js-mdict 网页查询英汉词典

向 DeepSeek R1 提问&#xff1a; 我想写一个Web 前端网页&#xff0c;后台用 nodejs js-mdict, 实现在线查询英语单词 1. 项目结构 首先&#xff0c;创建一个项目目录&#xff0c;结构如下&#xff1a; mydict-app/ ├── public/ │ ├── index.html │ ├── st…

23.Word:小王-制作公司战略规划文档❗【5】

目录 NO1.2.3.4 NO5.6​ NO7.8.9​ NO10.11​ NO12​ NO13.14 NO1.2.3.4 布局→页面设置对话框→纸张&#xff1a;纸张大小&#xff1a;宽度/高度→页边距&#xff1a;上下左右→版式&#xff1a;页眉页脚→文档网格&#xff1a;勾选只指定行网格✔→ 每页&#xff1a;…

联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸

现在某品牌的13/14代&#xff08;CPU是13或14开头&#xff09;CPU缩肛有设计质量问题、CPU容易氧化易损坏易蓝屏等问题&#xff0c;现在大家买笔记本或台式电脑请不要考虑这两代CPU&#xff0c;或考虑AMD的CPU。 晚上23点10分前下单&#xff0c;第二天上午显示屏送到&#xff…