文件操作(上)
目录
文件的必要性:
文件分类:
程序文件:
数据文件:
文件的打开与关闭:
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;
}
下期预告:
相关文章:

文件操作(上)
目录 文件的必要性: 文件分类: 程序文件: 数据文件: 文件的打开与关闭: fopen函数分析: 编辑 FILE*: char*filename: char*mode: fclose函数: 应用: 文件编译 Fgetc Fputc 应用…...

用CHAT写年终总结
问CHAT:写一份政企经理年度总结 CHAT回复:尊敬的同事和领导: 大家好,我是负责政企业务的经理,全年一直坚守在销售一线,为公司带来更多的企业客户并拓展业务领域。感谢领导和同事在工作中的大力支持与热情协…...

day01 深度学习介绍
目录 1.1深度学习介绍 1.2神经网络NN 1、概念: 2、神经元 3、(单层)神经网络 4、感知机(两层) 5、多层神经网络 6、激活函数 (1)饱和与非饱和激活函数 (2)饱和激活…...

k8s 部署 Nginx 并代理到tomcat
一、已有信息 [rootmaster nginx]# kubectl get nodes -o wide [rootmaster nginx]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2…...

医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)
医学图像的新型数据增强技术 CS-DA 核心思想自然图像和医学图像之间的关键差异CS-DA 步骤确定增强后的数据数量 代码复现 CS-DA 核心思想 论文链接:https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开…...

git克隆/拉取报错过早的文件结束符(EOF)的原因及解决
近期使用git拉取仓库的时候,拉取了好几次都不行,总是反馈说过早的文件结束符 总是这样,当然我的报错信息并没有描述完整,因为在我检索此类问题的时候,我发现有好多种所谓的过早的文件结束符这样的报错,但是…...

【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】
请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 文章目录 概述nano.specs示例使用注意事项问题总结概述 ARM 工具链 (arm-none-eabi-) 包括了一个叫作 --specs 的编译器和链接器选项,这个选项允许用户指定一个或多个 “specs” 文件,以影响编译或链接阶段的行为。Sp…...

C语言大师(5)构造函数和析构函数
引言 在C的面向对象编程中,构造函数和析构函数扮演着至关重要的角色。它们分别管理对象的初始化和销毁过程,确保资源的有效分配和释放。了解这些函数如何工作,对于编写高效和可靠的C程序至关重要。 1. 构造函数 构造函数在每次创建类的新对…...

安全审查常见要求
一、是否有密码复杂度策略、是否有密码有效期 1)密码长度至少8位; 2)要求用户密码必须包含大小写字母、数字、特殊字符 3)避免常见密码 123456,qwerty, password; 4) 强制用户定期修改密码; 5&#x…...

最新 生成pdf文字和表格
生成pdf文字和表格 先看效果 介绍 java项目,使用apache的pdfbox工具,可分页,自定义列 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.22<…...

安全基础~攻防特性3
文章目录 SSTI(模板注入)1. 简介2. 成因3. 常见框架存在注入4. 判断存在SSTI SSTI(模板注入) 1. 简介 (Server-Side Template Injection) 服务端模板注入 1、使用框架(MVC的模式),如python的flask,php的tp,java的sp…...

Windows7关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法
背景 电脑比较老,系统一直没有更新,硬件和软件版本如下: 操作系统版本:Windows7 企业版 谷歌浏览器版本:109.0.5414.120(正式版本) (64 位) 该版本的谷歌浏览器是支持…...

[一]ffmpeg音视频解码
[一]ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu(Linux)中编译Android平台的FFmpeg( arm和x86 )5.解压FFmpeg6.Android编译脚本(1)…...

k8s-认证授权 14
Kubernetes的认证授权分为认证(鉴定用户身份)、授权(操作权限许可鉴别)、准入控制(资源对象操作时实现更精细的许可检查)三个阶段。 Authentication(认证) 认证方式现共有8种&…...

在全志H616核桃派上实现USB摄像头的OpenCV颜色检测
在给核桃派开发板用OpenCV读取图像并显示到pyqt5的窗口上并加入颜色检测功能,尝试将图像中所有蓝色的东西都用一个框标记出来。 颜色检测核心api 按照惯例,先要介绍一下opencv中常用的hsv像素格式。颜色还是那个颜色,只是描述颜色用的参数变…...

mac安装部署gitbook教程
mac安装部署gitbook教程 前言一、安装准备二、GitBook安装三、项目初始化 前言 一些自己实际操作的记录。 一、安装准备 Node.js gitbook基于Node.js,所以需要提前安装。 下载地址:https://nodejs.org/en/,可以下载比较新的版本。(但我的建议…...

有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划
有关软件测试的,任何时间都可以,软件测试主要服务项目: 1. 测试用例 2. 测试报告 3. 测试计划 4. 白盒测试 5. 黑盒测试 6. 接口测试 7.自动…...

快乐过寒假,安全不放假
寒假将至,春节即来,为了使孩子们过上一个平安、快乐、文明、祥和、健康、有益的寒假和春节,在共青团永宁县委员会、永宁县望洪镇人民政府的大力支持下,在永宁新华中心村校外少工委的积极配合下,1月20日下午宁夏妇女儿童…...

qt学习:模仿qq界面+添加资源+无边框界面+修改样式
目录 一,创建登录ui界面类 LoginWidget 二,添加图片资源 三,通过样式的方法将图片设置成圆圈的背景 四,新建登录后的ui界面 MWindow 简陋的就可以,因为只为了学习,可以自己补充 五,新建三个嵌套ui界面类,ChatWidget聊天界面 FriendWiidget好友界面 CollectW…...

【Linux】基本指令收尾
文章目录 日期查找打包压缩系统信息Linux和Windows互传文件 日期 这篇是基本指令的收尾了,还有几个基本指令我们需要说一下 首先是Date,它是用来显示时间和日期 直接输入date的话显示是有点不好看的,所以我们可以根据自己的喜欢加上分隔符&…...

精准核酸检测 - 华为OD统一考试
OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。 现在根据传染病流调以及大数据分析&a…...

LINUX文件fd(file descriptor)文件描述符
目录 1.文件接口 1.1open 1.2C语言为什么要对open进行封装 2.fd demo代码 第一个问题 第二个问题 打开文件流程 引言:在学习C语言的时候,我们见过很多的文件的接口,例如fopen,fwrite,fclose等等,但…...

SpringMVC 的理解
MVC MVC(Model-View-Controller)是一种软件设计模式,用于实现用户界面。它将应用程序划分为三个互相交互的部分,以分离内部逻辑表示和表现层。这种分离有助于管理复杂的应用程序,因为它允许开发者单独修改模型、视图或…...

SpringBoot 3.1.7 集成Sentinel
一、背景 我的项目需要引入限流,降级,熔断框架,由于 Spring Cloud 2022.0.4 已经不再支持 Hystrix,Spring Cloud 提供了替代方案,如 Resilience4j,可以使用它来替换 Hystrix。但是网上搜了一下国内Resilie…...

Elastic Stack 8.12:通过对 ES|QL 等的改进增强了向量搜索
作者:来自 Elastic Tyler Perkins, Shani Sagiv, Gilad Gal, Ninoslav Miskovic Elastic Stack 8.12 构建于 Apache Lucene 9.9(有史以来最快的 Lucene 版本)之上,基于我们对标量量化和搜索并发性的贡献,为文本、向量和…...

结构体的内存对齐(计算题常考点)
许久不见我考完试回来啦,让我们接着将结构体进行到底! 目录 结构体对齐的意义: 结构体对齐的实现: 对齐规则: 训练: 好到这里误区来了: 总结: 往期回顾: 下期预告&…...

设置Json对象输出字段顺序
场景 通过情况下对前端输出json格式不需要关注字段顺序,但某些特殊场景需要设置字段输出顺序(例nginx需要对特殊字段顺序进行加密处理);框架有默认的顺序,如 jackson 默认使用字段声明的顺序, fastjson 默认是使用字典序。 jackso…...

当 OpenTelemetry 遇上阿里云 Prometheus
作者:逸陵 背景 在云原生可观测蓬勃发展的当下,想必大家对 OpenTelemetry & Prometheus 并不是太陌生。OpenTelemetry 是 CNCF(Cloud Native Computing Foundation)旗下的开源项目,它的目标是在云原生时代成为应…...

【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)
【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source) 1)执行环境(Execution Environment)1.1.创建执行环境1.2.执行模式(Execution Mode)1.3.触发程序执行…...

【蓝桥杯EDA设计与开发】资料汇总以及立创EDA及PCB相关技术资料汇总(持续更新)
[18/01/2024]:目前为了准备蓝桥杯做一些资料贴,于是写下这一篇博客。 各种资料均来源于网络以及部分书籍、手册等文档,参考不保证其准确性。 如果在准备蓝桥杯,可与我私信共同学习!!!…...