文件的顺序读写

文件读写函数介绍

文件顺序读写函数
函数名功能适用于
fputc
字符输出函数
所有输出流
fgetc
字符输⼊函数
所有输⼊流
fputs
⽂本⾏输出函数
所有输出流
fgets
⽂本⾏输⼊函数
所有输⼊流
fprintf
格式化输出函数
所有输出流
fscanf
格式化输⼊函数
所有输⼊流
fwrite
⼆进制输出
⽂件
fread
⼆进制输⼊
⽂件
上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀般指适⽤于标准输出流和其他输出流(如⽂件输出流)。

fputc函数和fgetc函数

fputc函数

函数的返回值以及参数格式如下:

该函数为字符写入函数,写入的对象为文件,第一个参数是要写入文件的字符,第二个参数是文件指针。若写入成功,则返回值为写入成功的字符的ASCII码值,若失败,则返回EOF。

fputc函数的具体使用方法如下:

当文件打开后,需要判断文件是否打开成功,当文件使用结束后,必须关闭文件

文件内容和输出结果为:

fgetc函数

函数的返回值以及参数格式如下:

该函数为字符读取函数,只需要接受一个参数,即文件指针。若读取成功,则返回值为文件中的第一个字符,随后光标往后移动,下次读取时,为文件中的第二个字符,以此类推。当文件发生错误或文件结束时,返回EOF。

fgetc函数的具体使用方法如下:

在while循环中,当文件没有发生错误或者文件结束时,输出字符并继续读取,直到碰到文件发生错误或者文件结束,读取结束。

文件内容和输出结果为:

fputs函数和fgets函数

fputs函数

函数的返回值以及参数格式如下:

该函数为字符串写入函数,写入的对象同样为文件,函数的第一个参数为包含写入数据的字符串的地址,第二个参数为文件指针。若写入成功,则返回非负值,若失败,则返回EOF。

fputs函数的具体使用方法如下:

用一个整型变量接受函数的返回值并输出,查看是否写入成功。

文件内容和输出结果为:

fgets函数

函数的返回值以及参数格式如下:

该函数为文件字符串读取函数,包含3个参数,第1个参数为存放读取数据的字符串的地址,第2个参数为最多读取的字符个数,第3个参数为文件指针。当读取成功时,返回存放数据的字符串的地址,若读取失败,返回空指针。

fgets函数的具体使用方法如下:

创建一个字符指针用来接受函数返回值,判断是否读取成功。

文件内容和输出结果为:

fprintf函数和fscanf函数

fprintf函数

fprintf函数的返回值以及参数格式如下:

printf函数的返回值以及参数格式如下:

fprintf函数与printf函数相比,仅仅是多了一个参数,该参数为文件指针。因此,只要我们能熟练使用printf函数,那使用fprintf函数也不成问题。

fprintf函数的具体使用方法如下:

可以看到,该函数除了多出来一个文件指针的参数,使用方法与printf函数并无太大区别。

文件内容和输出结果为:

fscanf函数

fscanf函数的返回值以及参数格式如下:

scanf函数的返回值以及参数格式如下:

同样,fscanf函数与scanf函数相比,仅仅是多了一个参数,该参数为文件指针。因此,只要我们能熟练使用scanf函数,那使用fscanf函数也不成问题。

fscanf函数的具体使用方法如下:

可以看到,该函数除了多出来一个文件指针的参数,使用方法与scanf函数并无太大区别。

文件内容和输出结果为:

fwrite函数和fread函数

与前面的文件操作函数不同,fwrite函数和fread函数是针对二进制文件的。

fwrite函数

函数的返回值以及参数格式如下:

该函数为二进制文件写入函数,包含4个参数,第1个参数为包含数据的数组的地址,第2个参数为数组中单个字节的大小,第3个参数为数组元素个数,第4个参数为文件指针。返回值为成功写入的元素个数。

fwrite函数的具体使用方法如下:

可以看到,我们创建一个变量用来接收fwrite函数的返回值,查看是否写入成功。

文件内容和输出结果为:

由于文件是二进制文件,因此文件内容是不可见的。

fread函数

函数的返回值以及参数格式如下:

该函数为二进制文件读取函数,包含4个参数,第1个参数为接受数据的数组的地址,第2个参数为数组中单个字节的大小,第3个参数为数组元素个数,第4个参数为文件指针。返回值为成功读取的元素个数。

fread函数的具体使用方法如下:

通过循环的方式,我们可以在不知道文件中数据个数的时候,将文件中的数据一个个读取出来。

文件内容和输出结果为:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Multi-modal Information Fusion for Action Unit Detection in the Wild

标题:多模态信息融合用于野外动作单元检测 源文链接:https://openaccess.thecvf.com/content/CVPR2023W/ABAW/papers/Deng_Multi-Modal_Information_Fusion_for_Action_Unit_Detection_in_the_Wild_CVPRW_2023_paper.pdfhttps://openaccess.thecvf.com/…

【HarmonyOS开发】Tabs使用封装

背景 在写Tabs时,会使用很多个TabContent来实现不同页面的展示内容,但是如果TabContent数量很多时,会导致Tabs代码量大而且很臃肿,因此想着尝试去封装Tabs的使用,可以让界面整洁和对内容界面的解耦。 主要依托于wrap…

数据驱动下的私域运营战略布局

一、以用户为中心的组织重构或整合 发现,市场上大部分做的非常成功的私域项目,都是由CEO推动的、基于该战略的组织重构去驱动的。 我们也看到,在很多公司,私域运营是由品牌部门、CRM部门和Trade Marketing部门合作一起运营的。 …

SpringCloud教程 | 第十篇: 读取Nacos的配置

1、引入依赖 <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.7</version></dependency> 2、在启动类加上 NacosPropertySource(dataId"nac…

芯课堂 | 基于ugui上位机工程怎么使用串口烧录素材

1、查看程序初始化串口引脚和波特率 串口引脚是PE7和PE5&#xff0c;默认初始化波特率是115200。可以使用串口模块连接串口引脚&#xff0c;如果用我们的开发板&#xff0c;板载有ch340串口模块&#xff0c;需要用杜邦线把串口模块连接串口引脚&#xff0c;具体可以查看原理图…

stm32学习:(寄存器1)控制寄存器来让led亮

开启时钟&#xff0c;先查找到开启时钟的寄存器&#xff0c;然后通过该寄存器操作时钟的开启或关闭&#xff0c;要打开的是GPIOA的时钟 在芯片手册&#xff0c;找到RCC寄存器描述章节找到APB2外设时钟使能寄存器&#xff08;RCC_APB2ENR)&#xff0c;现在算RCC_APB2ENR这个寄存…

Monaco 使用 DocumentFormattingEditProvider

文档格式化&#xff0c;是 VSCode 比较常用的功能&#xff0c;在文档上点击右键选择格式化文档。效果如下&#xff1a; 在 Monaco 通过 registerDocumentFormattingEditProvider 方法注册处理函数&#xff0c;实现 provider 方法。 provider 方法返回格式化好的代码。 TextE…

【工具】2102- es-toolkit:一个现代 JavaScript 工具包,体积更小,内置 TypeScript 支持...

介绍 es-toolkit 是一款先进且具备高性能的现代化 JavaScript 实用工具库&#xff0c;其拥有较小的捆绑包规模以及强大的类型注解&#xff0c;同时还提供了一系列非常不错的函数&#xff0c;适合日常使用。 相较于 lodash 等替代方案&#xff0c;es-toolkit 所提供的包体积显著…

C++相关概念和易错语法(21)(虚函数、协变、析构函数的重写)

多态的核心是虚函数&#xff0c;本文从虚函数出发&#xff0c;根据原理慢慢推进得到结论&#xff0c;进而理解多态 1.虚函数 先看一下下面的代码&#xff0c;想想什么导致了这个结果 #include <iostream> using namespace std;class A { public:virtual void test(){co…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Springboot + JWT 的 Token 登录验证

目录 项目结构 一、 引入依赖 二、自定义Auth认证注解 三、 编写登录拦截器 四、定义跨域拦截器 五、 定义全局异常处理器 六、定义工具类 1. 统一错误状态码 2.统一响应类 3.Token工具类 七、 编写实体类 八、 定义控制器 1.定义登录控制器类 2 定义报错处理器 …

量化投资基础(二)之CAPM模型

点赞、关注&#xff0c;养成良好习惯 Life is short, U need Python 量化投资基础系列&#xff0c;不断更新中 资本资产定价模型&#xff08;Capital Asset Pricing Model,CAPM&#xff09;是由美国经济学家 威廉夏普&#xff08;William Sharpe&#xff09;于20世纪60年代基于…

小型数控车床对现代制造业的影响

小型数控车床作为现代制造业的重要生产工具&#xff0c;集成了计算机控制、精密机械、电子技术和自动化技术&#xff0c;为各种复杂零件的加工&#xff0c;在生产效率和精度上带来了显著提升&#xff0c;它是制造业中不可或缺的基础装备&#xff0c;在金属切削加工领域发挥着关…

数据库的管理

目录 远程连接的方式 修改数据库uuid流程 数据库的概念 关系型数据库 非关系型数据库 关系型数据和非关系型数据库优缺点 mysql的数据类型 数据库的管理 sql中的名词 sql语言的分类 1.DDL 创建库和表的语句 create 删除库 drop databases 2.DML: 插入数据 ins…

使用APEXSQL LOG解析sql server事务日志,进行审计与数据恢复

一 下载 https://download.csdn.net/download/sunke861/11449739 二 使用 解压安装包后&#xff0c;点击&#xff1a;ApexSQLLog.exe 2.1 连接数据库 连接要审计的数据库&#xff1a; 假如报错&#xff1a; 则点击ok关闭该窗口&#xff0c;然后点击左上方的New按钮&#xf…

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址&#xff1a;https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字&#xff0c;项目路径&#xff0c;选择maven,点击下面的创建 运行项目 …

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09;1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文…

半导体超纯水(UPW)全面监控检测项目及液体粒子计数器应用

超纯水 (UPW) 是经过高度纯化的水&#xff0c;去除了所有矿物质、颗粒、细菌、微生物和溶解的气体。在芯片厂里&#xff0c;它也经常会被混称为 DI Water&#xff08;去离子水&#xff09;&#xff0c;但国内通常把去离子水与超纯水分的比较开&#xff0c;其实去离子水是包含了…

智能可视采耳棒耳勺安全吗?六大选购技巧排忧解惑!

耳垢作为外耳道内腺的分泌物&#xff0c;如果不及时清理&#xff0c;可能会造成耳道的栓塞&#xff0c;进而引致耳痛、听力减弱、咳嗽等不适。而传统的耳勺由于其盲操作的特性&#xff0c;对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺&#xff0c;让我们…

【转盘案例-基本框架-创建按钮-按钮布局 Objective-C语言】

一、转盘案例的基本框架 1.我们先来看一下这个转盘啊 新建一个项目,Name:01-大转盘 把素材拷过来, 我们先把背景图片设置一下, 这张图片,可能会很大,跟你的屏幕呢,可能不成正比,这个时候呢,我们应该用拉伸的方式,去做,那么,这个控制器的背景,应该怎么去设置, 画…