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

文件操作(上)

目录

文件的必要性:

文件分类:

程序文件:

数据文件:

文件的打开与关闭:

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 核心思想 论文链接&#xff1a;https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开…...

git克隆/拉取报错过早的文件结束符(EOF)的原因及解决

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

【ARM 嵌入式 编译系列 2.5 -- GCC 编译参数学习 --specs=nano.specs选项 】

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

C语言大师(5)构造函数和析构函数

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

安全审查常见要求

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

最新 生成pdf文字和表格

生成pdf文字和表格 先看效果 介绍 java项目&#xff0c;使用apache的pdfbox工具&#xff0c;可分页&#xff0c;自定义列 依赖 <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、使用框架&#xff08;MVC的模式&#xff09;&#xff0c;如python的flask&#xff0c;php的tp&#xff0c;java的sp…...

Windows7关闭谷歌浏览器提示“若要接收后续 Google Chrome 更新,您需使用 Windows 10 或更高版本”的方法

背景 电脑比较老&#xff0c;系统一直没有更新&#xff0c;硬件和软件版本如下&#xff1a; 操作系统版本&#xff1a;Windows7 企业版 谷歌浏览器版本&#xff1a;109.0.5414.120&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 该版本的谷歌浏览器是支持…...

[一]ffmpeg音视频解码

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

k8s-认证授权 14

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

在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

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

mac安装部署gitbook教程

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

有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划

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

快乐过寒假,安全不放假

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

qt学习:模仿qq界面+添加资源+无边框界面+修改样式

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

【Linux】基本指令收尾

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

FastAPI负载测试:持续集成的完整指南

FastAPI负载测试&#xff1a;持续集成的完整指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为高性能、易学习的现代Pyth…...

奇偶判断算法的极端实现与优化

1. 奇偶判断算法的极端实现&#xff1a;从40亿条if语句到机器码优化1.1 项目背景与设计动机在计算机科学领域&#xff0c;判断数字奇偶性通常采用取模运算这一经典方法。然而&#xff0c;一个看似荒谬的想法引发了技术人员的深入思考&#xff1a;是否可以通过穷举所有可能的数字…...

企业级消息通道架构实战:深度解析高性能钉钉机器人集成方案

企业级消息通道架构实战&#xff1a;深度解析高性能钉钉机器人集成方案 【免费下载链接】openclaw-channel-dingtalk A dingtalk bot channel plugin for clawdbot 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-channel-dingtalk OpenClaw-Channel-DingTalk是…...

PyTorch 3.0静态图分布式训练:如何用3行torch.compile + 2行DTensor替代自研调度器?一线大厂已全面切换

第一章&#xff1a;PyTorch 3.0静态图分布式训练概览 PyTorch 3.0 引入了原生静态图&#xff08;Static Graph&#xff09;支持&#xff0c;通过 TorchDynamo Inductor 后端实现高效图捕获与跨设备编译&#xff0c;为大规模分布式训练提供低开销、高一致性的执行基础。静态图模…...

保姆级移植教程:将正点原子ATK-IMU901官方例程从STM32 HAL库迁移到MSPM0G3507

跨平台传感器驱动移植实战&#xff1a;从STM32 HAL到MSPM0的代码重构方法论 当我们需要将成熟的传感器驱动迁移到新硬件平台时&#xff0c;往往面临底层接口差异带来的适配难题。本文将以正点原子ATK-IMU901十轴陀螺仪模块为例&#xff0c;详解如何将其官方STM32 HAL驱动移植到…...

别再死记硬背了!用矢量网络分析仪实测PA的P1dB和OIP3(附详细步骤与曲线解读)

矢量网络分析仪实战&#xff1a;PA的P1dB与OIP3测量全流程解析 在射频放大器设计与测试领域&#xff0c;P1dB和OIP3是两个无法绕开的性能指标。许多工程师虽然能背诵定义&#xff0c;但面对实验室里的矢量网络分析仪&#xff08;VNA&#xff09;时却无从下手。本文将彻底改变这…...

OpenClaw技能扩展实战:用百川2-13B-4bits量化模型开发自定义自动化模块

OpenClaw技能扩展实战&#xff1a;用百川2-13B-4bits量化模型开发自定义自动化模块 1. 为什么选择百川2-13B-4bits量化模型 去年冬天&#xff0c;当我第一次尝试用本地部署的大模型开发OpenClaw技能时&#xff0c;显存不足的报错成了家常便饭。直到发现百川2-13B的4bits量化版…...

保姆级教程:手把手教你用LIN诊断协议传输超过5字节的数据(附多帧传输实战代码)

突破LIN诊断协议5字节限制&#xff1a;多帧传输实战指南 在汽车电子开发中&#xff0c;LIN总线因其低成本、高可靠性的特点&#xff0c;被广泛应用于车身控制、传感器网络等场景。但LIN协议的单帧5字节数据限制&#xff0c;常常成为开发者面临的技术瓶颈——无论是ECU固件升级还…...

MAG3110磁力计驱动开发与地磁导航嵌入式实践

1. MAG3110三轴数字磁力计技术解析与嵌入式驱动开发实践MAG3110是由NXP&#xff08;恩智浦&#xff09;半导体推出的高精度、低功耗三轴数字磁力计&#xff0c;专为电子罗盘&#xff08;eCompass&#xff09;、姿态检测、位置感知及工业磁场监测等场景设计。该器件采用IC接口通…...

OmenSuperHub全面指南:解锁惠普游戏本隐藏性能的三大实用方案

OmenSuperHub全面指南&#xff1a;解锁惠普游戏本隐藏性能的三大实用方案 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 厌倦了官方Omen Gaming Hub的臃肿体验&#xff1f;OmenSuperHub作为一款开源轻量级工具&#xff0c;…...