C语言葵花宝典之——文件操作
前言:
在之前的学习中,我们所写的C语言程序总是在运行结束之后,就会自动销毁,那如果我们想将一个结果进行长期存储应该如何操作呢?这时候就需要我们用文件来操作。
目录
1、什么是文件?
1.1 程序文件
1.2 数据文件
1.3 文件名
2、二进制文件和文本文件
2.1 文本文件:
2.2 二进制文件:
3、文件的打开和关闭
3.1 fopen() 函数
编辑
3.2 fprintf() 函数
3.3 fputc() 函数
1、什么是文件?
文件就是我们硬盘中存在的文件,例如C盘、D盘中的内容
我们常讲的文件有程序文件和数据文件两种
1.1 程序文件
程序文件包括源程序文件 (后缀为 .c )、目标文件(后缀为 .obj )、可执行程序(后缀为 .exe )这三种,这不是我们今天要讲的重点
1.2 数据文件
文件的内容除了是程序,还可能是程序运行的数据,比如可能是程序结果输入的那个文件,或者是从一个文件中读取内容。
1.3 文件名
文件名实际上也就是文件表示,是用来帮助用户找到指定文件的
例如:c:\ add \ test.txt

2、二进制文件和文本文件
二进制文件和文本文件是计算机中常见的两种文件类型,它们在存储和处理方式上有所不同。
2.1 文本文件:
- 文本文件是以人类可读的字符组成的文件,通常使用ASCII或Unicode编码。
- 文本文件包含的是文本数据,如文本文档、代码文件等。
- 文本文件可以直接在文本编辑器中打开并查看,易于理解和编辑。
- 换行符在文本文件中通常以特定的字符表示(如"\n")。
- 文本文件的大小通常以字符数或字节数来衡量。
2.2 二进制文件:
- 二进制文件是以计算机可识别的二进制数据组成的文件,可以包含任意数据类型,如图像、音频、视频等。
- 二进制文件不是以文本形式存储,无法直接在文本编辑器中打开查看,需要特定的程序来解析和处理。
- 二进制文件的内容是以字节为单位存储的,不具有人类可读性。
- 换行符在二进制文件中没有特定表示方式,可能会以特定的字节序列表示。
- 二进制文件的大小通常以字节数来衡量。
简单来说,文本文件我们一般是直接可读的,而二进制文件则一般需要经过操作后才可读
下面给出一个二进制写入的程序:
#include<stdio.h>
int main()
{int a = 10000;FILE* pf = fopen("test.txt", "wb");fwrite(&a, 4, 1, pf);//二进制的形式写入文件中fclose(pf);pf = NULL;
}
运行后:

你会发现我们存进去的a的值是以一种我们看不懂的方式存储的,这实际上就是二进制存储
3、文件的打开和关闭
文件在读写之前要先打开文件,在使用结束后再关闭文件
一般我们是通过一个FILE*指针变量来指向该文件,FILE*指针是再打开一个文件的时候必须创建的,这就相当于文件的指针,我们可以通过创建一个这样的变量指向指针
规定中,我们用fopen来打开文件,用fclose来关闭文件
//打开文件
FILE* fopen(const char* filename, const char* mode);//关闭文件
int floce(FILE* stream);
mode表示文件的打开模式,主要有以下几种模式:

文件写入实例:
3.1 fopen() 函数
fopen() 函数用于打开一个文件,并返回一个文件指针,以便后续的读写操作。该函数的原型如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename是要打开的文件名,mode指定打开文件的模式(如"r"表示只读,"w"表示只写,"a"表示追加等)。
应用实例:
#include <stdio.h>int main() {FILE *fp;fp = fopen("example.txt", "w");if (fp == NULL) {printf("文件打开失败\\n");return 1;}fprintf(fp, "Hello, World!\\n");fclose(fp);return 0;
}
3.2 fprintf() 函数
fprintf() 函数用于将格式化的数据写入文件。其原型如下:
int fprintf(FILE *stream, const char *format, ...);
其中,stream是文件指针,format是格式化字符串,类似于printf()函数的用法。
应用实例:
#include <stdio.h>int main() {FILE *fp;fp = fopen("example.txt", "w");if (fp == NULL) {printf("文件打开失败\\n");return 1;}int num = 42;fprintf(fp, "The answer is: %d\\n", num);fclose(fp);return 0;
}
3.3 fputc() 函数
fputc() 函数用于将一个字符写入文件。其原型如下:
int fputc(int character, FILE *stream);
其中,character是要写入的字符,stream是文件指针。
应用实例:
#include <stdio.h>int main() {FILE *fp;fp = fopen("example.txt", "w");if (fp == NULL) {printf("文件打开失败\\n");return 1;}fputc('A', fp);fclose(fp);return 0;
}
通过使用这些文件写入函数,我们可以轻松地在C语言中实现文件写入操作。记得在写入完成后关闭文件,以释放资源并确保数据写入磁盘。
其他函数的用法和功能如下:

其实文件的读取和写入就是对这些函数的理解和使用,熟悉这些函数的使用方法,就可以很好的进行文件的写入与写出,具体知识也没有多少,重在上机操作,多应用几遍就好了,如果在实操中遇到不懂的地方,欢迎私信我或者在评论区指出
创作不易,还请一键三连
相关文章:
C语言葵花宝典之——文件操作
前言: 在之前的学习中,我们所写的C语言程序总是在运行结束之后,就会自动销毁,那如果我们想将一个结果进行长期存储应该如何操作呢?这时候就需要我们用文件来操作。 目录 1、什么是文件? 1.1 程序文件 1.2…...
SSM框架,MyBatis-Plus的学习(下)
条件构造器 使用MyBatis-Plus的条件构造器,可以构建灵活高效的查询条件,可以通过链式调用来组合多个条件。 条件构造器的继承结构 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装…...
边缘计算网关的工作原理及其在工业领域的应用价值-天拓四方
随着物联网技术的快速发展,物联网时代已经悄然来临。在这个时代,数以亿计的设备相互连接,共享数据,共同构建智慧的世界。边缘计算网关通过将计算能力和数据存储推向网络的边缘,实现了对海量数据的实时处理,…...
下载指定版本的pytorch
下载网址:https://download.pytorch.org/whl/torch_stable.html 参考博客网址:https://blog.csdn.net/wusuoweiieq/article/details/132773977...
STL:List从0到1
🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…...
利用高分五号02星高光谱数据进行地物识别
高分五号02星搭载了一台60公里幅宽、330谱段、30米分辨率的可见短波红外高光谱相机(AHSI),可见近红外(400~1000nm)和短波红外光谱(1000~2500nm)分辨率分别达到5纳米和10纳米。单看参数性能优越&…...
前端如何识别上传的二维码---jsQR
npm npm i -d jsqrhtml <el-button click"$refs.input.click()">识别</el-button> <input type"file" style"display: none" id"input" input"upload">js import jsQR from "jsqr";decodeQR…...
flink1.18.0 自定义函数 接收row类型的参数
比如sql中某字段类型 array<row<f1 string,f2 string,f3 string,f4 bigint>> 现在需要编写 tableFunction 需要接受的参数如上 解决方案 用户定义函数|阿帕奇弗林克 --- User-defined Functions | Apache Flink...
JDK8和JDK11在Ubuntu18上切换(解决nvvp启动报错)
本文主要介绍JDK8和JDK11在Ubuntu18上切换,以供读者能够理解该技术的定义、原理、应用。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:计算机杂记 🎀CSDN主页 发狂的小花 🌄人…...
基于eleiment-plus的表格select控件
控件不是我写的,来源于scui,但在使用中遇到了一些问题,希望能把过程记录下来,同时把这个问题修复掉。 在使用的时候对控件进行二级封装,比如我的一个商品组件,再很多地方可以用到,于是 <template>&l…...
「❤️万文总结 时光回忆录❤️」那年,我在北京邮电大学计算机学院求学的日子
文章目录 关于我 | About Me梦绕西土城,邮情涌流 | Dreams and Connections in Haidian 北邮求学记 | My Days at BUPT岁月如歌,追忆往昔 | Reminiscing the Fleeting Years新篇章:班级与环境 | New Class, New Surroundings高压与挑战&#…...
【四 (1)数据可视化之如何选用正确的图表】
目录 文章导航一、数据分析中可视化的作用1、揭示数据关联和模式2、支持数据分析和决策3、提升沟通和共享效果4、强调关键信息和发现5、增强故事叙述和记忆效果6、有效增强数据交互性数据7、复杂信息易理解8、数据多维度显示 二、如何选用合适的图表1、简洁性避免使用过于复杂或…...
PHP<=7.4.21 Development Server源码泄露漏洞 例题
打开题目 dirsearch扫描发现存在shell.php 非预期解 访问shell.php,往下翻直接就看到了flag.. 正常解法 访问shell.php 看见php的版本是7.3.33 我们知道 PHP<7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞,可以将PHP文件作为静态文件直接输…...
大语言模型RAG-技术概览 (一)
大语言模型RAG-技术概览 (一) 一 RAG概览 检索增强生成(Retrieval-AugmentedGeneration, RAG)。即大模型在回答问题或生成问题时会先从大量的文档中检索相关的信息,然后基于这些信息进行回答。RAG很好的弥补了传统搜索方法和大模型两类技术…...
【嵌入式DIY实例】-DIY锂电池电压检测表
DIY锂电池电压检测表 文章目录 DIY锂电池电压检测表1、直流电压检测传感器介绍2、硬件准备3、代码实现4、OLED显示在电子应用中,通常需要使用到电池,电源管理是必不可少的部分。本文将详细介绍如何使用一个0-25V的直流电压传感器来检测锂电池的电压。 1、直流电压检测传感器介…...
生成baidu.com域名的私有证书:Linux系统命令示例
在Linux系统上生成一个针对xzyxdev.prec-tech.com域名的私有证书(通常指的是自签名证书),你可以使用openssl工具。以下是一个简单的步骤和命令示例来生成这样的证书: 生成私钥 首先,你需要生成一个私钥。这通常是一个…...
小程序学习4 mock
services/home.js import { config, cdnBase } from ../../config/index;/** 获取首页数据 */ function mockFetchHome() {const { delay } require(../_utils/delay);const { genSwiperImageList } require(../../model/swiper);return delay().then(() > {return {swip…...
Unity3D MMORPG角色的UI血条管理详解
前言 在Unity3D游戏开发中,MMORPG(Massively Multiplayer Online Role-Playing Game)游戏是一种非常流行的游戏类型。在这种类型的游戏中,玩家通常可以选择不同的角色来进行游戏,而角色的血条管理是游戏中非常重要的一…...
【python】爬取杭州市二手房销售数据做数据分析【附源码】
一、背景 在数据分析和市场调研中,获取房地产数据是至关重要的一环。本文介绍了如何利用 Python 中的 requests、lxml 库以及 pandas 库,结合 XPath 解析网页信息,实现对链家网二手房销售数据的爬取,并将数据导出为 Excel 文件的过…...
Day34:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法
目录 Java-反射-Class对象类获取 Java-反射-Field成员变量类获取 Java-反射-Method成员方法类获取 Java-反射-Constructor构造方法类获取 Java-反射-不安全命令执行&反序列化链构造 思维导图 Java知识点 功能:数据库操作,文件操作,…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...

