文件操作(上)

目录

文件的必要性:

文件分类:

程序文件:

数据文件:

文件的打开与关闭:

fopen函数分析:

​编辑

FILE*:

char*filename:

char*mode:

fclose函数:

应用:

文件编译

Fgetc

Fputc

应用:

下期预告:


文件的必要性:

当我们想要将所写的数据在程序运行结束后继续保存时,这时我们就要将其保存在磁盘文件中。

因此文件的创建与操作在我们后期的学习当中必不可少。

文件分类:

在我们的程序设计中我们一般将文件分为两类:程序文件和数据文件

程序文件:

包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)

数据文件:

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。例如 .txt文件

注意:这些仅作了解,接下来我们讲述文件的打开与读写。


文件的打开与关闭:

这里我们需要了解fopen和fclose这两函数以及FILE*这一文件指针类型

fopen函数分析:

FILE*:

我们在对文件进行操作时是依靠文件的指针对其进行定位操作,“FILE*”这一指针类型就是表示指向某一文件路径的指针。每当我们用fopen打开文件时,如果打开成功fopen会将文件的路径以FILE*指针类型返回,这里我们将其理解为一种指针类型即可。

char*filename:

需要打开的文件名,这里需要用“ ”双引号进行标记。

char*mode:

打开文件后将要执行的操作,这里的操作字符已经被规定好了,我们进行选择就可以了

"r"读取一个文件,如果文件不存在则打开失败
"w"写入一个文件,如果文件不存在则创建一个该名称的文件
"a"在文件末尾进行追加写入,如果文件不存在则创建一个该名称的文件
"r+"同时用于读取和写入文件,如果文件不存在则打开失败
"w+"同时用于读取和写入文件,如果文件不存在则创建一个该名称的文件
"a+"在文件末尾进行追加写入和读取,如果文件不存在则创建一个该名称的文件

fclose函数:

这里关闭文件只需要将fopen返回的文件指针放入就可以了,记住打开文件之后不要忘了关闭文件!


应用:

int main()
{FILE* p1 = fopen("test.txt", "w");fclose(p1);return 0;
}

这里会在该文件目录下创建一个test.txt文件当我们知道如何打开文件后,就需要对文件中的内容进行编译

文件编译

了解文件打开与关闭后,我们就需要对文件的内容进行编译。

这里我们需要了解新的函数:


Fgetc

该函数读取文件的一个字符,如果读取成功将返回该字符的 int 类型值,并将光标移动一位。

如果读取失败或者到文件末尾将返回EOF。


Fputc

int character :想要录入文件的字符

FILE*stream:文件地址

注意:该函数一次只能放入一个字符

应用:

int main()
{FILE* p1 = fopen("test.txt", "w+");fputc('a', p1);fclose(p1);FILE* p2 = fopen("test.txt", "r");int m = fgetc(p2);printf("m=%d\n", m);fclose(p2);return 0;
}

下期预告:

利用本文章函数进行文本复制!

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

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

相关文章

HNU-数据挖掘-作业1

数据挖掘课程作业作业1 计科210X 甘晴void 202108010XXX 第一题 假设所分析的数据包括属性 age,它在数据元组中的值(以递增序)为13 ,15 ,16 ,16 ,19 ,20 ,20 ,21 ,22 ,22 ,25 ,25 ,25 ,25 ,30 ,33 ,33 ,35 ,35 ,35 ,35 ,36 ,40 ,45 ,46 ,52,70。 a.…

基于Unity平台开发Vision Pro应用

VisionOS是苹果最新空间计算设备Vision Pro的操作系统。Unity开发人员可以利用现有的3D场景 以及为 visionOS 构建游戏或应用程序的资产。有关 visionOS 的更多信息,请参阅 Apple 的 visionOS 概述。 visionOS提供了几种不同的显示应用程序的模式:Windo…

oracle如何定期备份数据库sql文件

Oracle数据库可以使用以下方法定期备份数据库的SQL文件: 使用Oracle的备份和恢复工具RMAN(Recovery Manager)进行备份。RMAN提供了全面而高效的数据库备份和恢复功能。您可以使用RMAN备份数据库的SQL文件,并将其存储在指定的位置。…

Keil新建工程

1.建立工程文件夹,keil中新建工程,选择型号 2.工程文件夹里建立Start,Library,User,等文件夹,复制固件库里面的文件到工程文件夹 这一步是为了添加工程文件准备的,建文件夹是因为文件比较多需要分类管理一下,这个文件夹的名称和数量没有限制,大家也可以根据自己的理解来建,都…

【网站项目】基于SSM的274办公自动化管理系统

🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

JVM系列-1.初识JVM

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理🔥如果感觉博主的文…

异或运算的骚操作,由浅入深拿捏一类型的题

文章目录 🚀前言🚀异或运算的基本用法🚀一组数中一种数出现了奇数次,其他种数出现了偶数次,找出这个数🚀一组数中有两种数出现了奇数次,其他种数出现了偶数次,求这两个数✈️得到一个…

Spring Boot3.2.2整合MyBatis Plus3.5.5

目录 1.前置条件 2.导坐标 3.配置数据源 4.配置mapper扫描路径 5.MyBatis Plus代码生成器整合 1.导坐标 2.编写代码生成逻辑 1.前置条件 已经初始化好一个spring boot项目且版本为3X&#xff0c;项目可正常启动 2.导坐标 <dependency><groupId>com.baomid…

弹性调度助力企业灵活应对业务变化,高效管理云上资源

作者&#xff1a;吴昆 什么是弹性调度 云计算时代&#xff0c;企业可以通过云平台获得大量计算资源&#xff0c;并根据业务发展和流量需求的实时变化&#xff0c;灵活调整使用的资源类型与资源量。阿里云提供了多种弹性资源&#xff0c;如云服务器 ECS 和弹性容器实例 ECI&am…

基于 Spring Boot+MySQL实现的在线考试系统源码+数据库,基于不同类型的客观题,进行自动组卷、批卷等功能的考试系统

1. 部署相关 1.1. 介绍 一个 JAVA 实现的在线考试系统,主要实现一套基于不同类型的客观题,进行自动组卷、批卷等功能的考试系统&#xff08;没有主观题&#xff09; 1.2. 系统架构 后端技术栈基于 Spring Boot数据库MySQLORMMyBatis & MyBatis-plus缓存Redis、guava的L…

【Java 设计模式】行为型之观察者模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于定义一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并自动更新。观察者模式提供…

WordPress 站点 Gravatar 头像不显示的解决方法

最近发现博客评论头像无法显示&#xff0c;不管是前台还是后台都不显示&#xff0c;哪怕是做了 Gravatar 头像本地缓存也不显示&#xff0c;访问 Gravatar 头像官方服务器也打不开&#xff0c;这怎么办&#xff1f;要么自定义头像&#xff0c;要么修改 Gravatar 头像的官方地址…

【Java网络编程02】套接字编程

【Java网络编程02】套接字编程 1. Socket套接字 概念&#xff1a;Socket套接字&#xff0c;就是系统提供用于实现网络通信的技术&#xff0c;是基于TCP/IP协议的网络通信基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 分类&#xff1a; 我们可以把Socket套接字…

docker 部署 sentinel

docker 部署 sentinel 环境安装 拉取镜像 目前稳定的版本是1.8.0 docker pull bladex/sentinel-dashboard:1.8.0启动服务 docker run --name sentinel -p 8858:8858 -td bladex/sentinel-dashboard:1.8.0登录 登录的时候账号和密码都是sentinel

算法训练营Day45

#Java #动态规划 Feeling and experiences&#xff1a; 最长公共子序列&#xff1a;力扣题目链接 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新…

泛型..

1.泛型 所谓泛型 其实就是一种类型参数(我们平常所见到的参数指的就是方法中的参数 他接收有外界传递来的值 然后在方法中进行使用) 并且还提高了代码的复用率 何以见得提高了代码的复用率 其实就是通过对比使用了泛型技术和没有使用泛型技术之间的区别&#xff1a; 以下是没有…

QTcpSocket 对象的可工作线程

QTcpSocket 对象的可工作线程: QTcpSocket 对象创建成功&#xff0c;并设置好底层socket描述符后&#xff1b;在qt中只能在一个线程中工作【即收发网络数据】这个线程就是创建这个QTcpSocket对象的线程&#xff0c;原理上这就与这个对象依附线程是同一个线程&#xff1b;但是注…

windows如何切换访问NAS共享文件夹用户

从资源管理器对NAS共享文件夹输入用户名与密码进行访问后&#xff0c;想切换访问用户&#xff0c;搜索了一圈&#xff0c;网上介绍的方法都无效&#xff0c;最后只能注销windows7登陆&#xff0c;然后重新登陆&#xff0c;再访问NAS共享时才能切换用户&#xff0c;各位观众如有…

深入理解与运用Lombok的@Cleanup注解:自动化资源管理利器

前言 在Java编程中&#xff0c;正确地管理和释放诸如文件流、数据库连接等资源至关重要。若处理不当&#xff0c;可能会引发内存泄漏或系统资源耗尽等问题。为此&#xff0c;Lombok库提供了一个名为Cleanup的便捷注解&#xff0c;它允许我们以简洁且安全的方式自动关闭实现了j…

Linux C语言开发(九)链表

目录 一.前言 二.链表构建 一.前言 C语言的链表是一种常见且实用的数据结构,它用于存储和管理数据元素。链表由一系列节点组成,每个节点包含两个部分:数据域和指针域。数据域用于存储实际的数据元素,而指针域则用于指向链表中的下一个节点。 链表的主要特点是其存储空间的…