文件操作(C语言)

article/2025/10/12 1:06:57

目录

一、前言

二、文件的打开和关闭

三、文件的读写

1.文件的顺序读写

2.文件的随机读写

四、文件结束的判定 


一、前言

当我们向写好的通讯录程序中输入信息时,有时我们希望能保存输入的信息,不用每次打开这个程序都要重新输入,这时就可以用”文件“来保存。

什么是文件?文件就是保存在磁盘中的信息。存在内存中的信息是临时存储的,只有把它保存在磁盘中以文件的形式存储,才能持久保存。

二、文件的打开和关闭

知道了文件的作用,那么我们要怎么去建立一个文件并写入数据呢?

首先,我们要理解一个名词:文件指针。我们知道在缓冲文件系统中,假设我们要使用文件来保存信息,那么写入的信息是先保存在内存中的,积累一定量后,操作系统再把这些信息转入磁盘中的文件。

在内存中为了存储有关文件的信息(比如文件名、文件创建时间等),系统开辟了一个文件信息区(是一个结构体变量),文件指针就是该结构体类型的指针,指向打开的文件。

 

好了,知道了文件指针,我们来看看怎么操作一个文件,这时要用到两个函数:fopen和fclose。

FILE *fopen( const char *filename, const char *mode );

//fopen函数参数第一个是文件名,第二个是文件的打开方式,是只读还是只写或者读写

//fopen如果成功打开这个文件,就会返回该文件的指针,否则返回NULL

int fclose( FILE *stream );

//fclose的函数参数就是文件指针,意思就是关闭该文件指针指向的文件

//如果成功关闭文件,fclose返回0,反之返回NULL

讨论一下为什么要使用fclose?

在缓冲文件系统中,数据先保存在内存中的文件缓冲区,当文件缓冲区满了,操作系统再将数据保存到磁盘文件,而fclose也是把数据从文件缓冲区移到磁盘文件,在这种情况下,fclose和操作系统功能重叠,是不是可以不用fclose呢?

答案是不行!因为如果文件缓冲区还没满,操作系统还没来得及把数据移到磁盘,程序就结束了,就会造成数据丢失,所以一定不能忘记用了fopen,就一定要用fclose

下面是fopen和fclose的使用: 

#include<stdio.h>
int main()
{//打开文件FILE* pf = fopen("date.txt", "w");//"w"是文件的打开方式,以只写方式打开文件if ( pf != NULL){//写入数据}//关闭文件fclose(pf);return 0;
}

文件名

文件名实际上是文件标识,包含文件路径、文件名、文件后缀,如c:\code\date.txt。

在上面的程序中,文件标识只有文件名和文件后缀,那就默认这个文件在当前源文件的目录下。

文件的打开方式

"w" -- 只写,如果文件不存在,新建一个文件

"r" -- 只读,假设文件不存在就会报错

"a" -- 追加,如果文件不存在,新建一个文件

还有很多其他打开方式,例如读写--"w+"。

三、文件的读写

知道怎么打开关闭一个文件,我们来看看如何读写文件。文件的读写有顺序读写和随机读写。

1.文件的顺序读写

 

#include<stdio.h>
int main()
{//打开文件FILE* pf = fopen("date.txt", "w");//"w"是文件的打开方式,以只写方式打开文件//char a = 'a';if ( pf != NULL){//写入数据fputs("Hello world\n", pf);//把字符串写入文件}//关闭文件fclose(pf);return 0;
}

在运行以上程序后,date.txt文件中已被写入"Hello world",如果要再向文件中写入,就是直接接在"Hello world"后写;同样,从该文件中读取数据,也只能从第一个字符开始读取,这就是文件的顺序读写。

2.文件的随机读写

实现文件随机读写的函数:fseek, ftell, rewind。

int fseek( FILE *stream, long offset, int origin );

//令stream指向距离origin偏移量为offset位置处

origin 的可能取值:

SEEK_CUR

--文件指针当前位置

SEEK_END

--文件末尾

SEEK_SET

--文件开头

#include<stdio.h>
int main()
{//打开文件FILE* pf = fopen("date.txt", "w");//char a = 'a';if (pf != NULL){//写入数据fputs("Hello world", pf);fseek( pf, 6, SEEK_SET);fputs("everyone", pf);//Hello world变成Hello everyone}//关闭文件fclose(pf);return 0;
}

long ftell( FILE *stream );

//用来得到文件指针stream当前位置相对于文件首位的偏移字节数

可以和fseek( pf, 0 ,SEEK_END)结合计算文件大小。

void rewind( FILE *stream );

//将文件指针stream重新指向文件开头

四、文件结束的判定 

  1. 读取文本文件时,判断返回值是否为NULL或EOF;
  2. 读取二进制文件时,判断返回值是否小于实际读取的个数(如fread).

注意:在文件读取结束时,使用feof判断文件是因为读取失败结束,还是因为读到文件尾结束


http://chatgpt.dhexx.cn/article/IUDX6brq.shtml

相关文章

文件操作详解(超级详细)

正常我们的程序在执行的时候程序结束后&#xff0c;会将所有数据清楚&#xff0c;那么我们应该如何保存数据呢&#xff1f;这里我们就需要用文件操作。 一、文件的打开和关闭 1.文件打开、关闭函数—fopen、fclose //打开文件 FILE * pf fopen ( const char * filename, const…

虚拟机安装黑苹果【虚拟机安装,黑苹果安装,黑苹果无法全屏问题】(这应该全网最全的资源了吧~)

一&#xff0c;资源下载 链接&#xff1a;https://pan.baidu.com/s/1cyGiDvkJinx8dnB57gO7UQ 提取码&#xff1a;i615 PS&#xff1a;里面有虚拟机资源&#xff0c;Drawin.ios文件和苹果镜像文件 这里只讲如何用虚拟机安装黑苹果&#xff0c;不讲如何安装虚拟机&#xff0c;下…

VMware虚拟机安装黑苹果10.15 || AMD R7 5800处理器

VMwar版本&#xff1a;16Pro 链接&#xff1a;https://pan.baidu.com/s/1qGHEynWSV4YS9WSNonxiuA?pwdazvh 提取码&#xff1a;azvh macOS链接&#xff0c;版本为Catalina 10.5。这个版本后&#xff0c;os安装包就过10G了&#xff0c;会特别卡。 链接&#xff1a;https://pan…

VMware16安装macOS10.15.1 - 黑苹果 - osx虚拟机

效果图 步骤 下载安装VMware&#xff0c;并且利用unlocker开启macos的支持VMware利用unlocker开启MacOS支持_Rudon滨海渔村的博客-CSDN博客效果步骤下载安装vmware16http://www.winwin7.com/soft/17946.html下载unlocker3.0 &#xff08;这里包括了darwin.iso和darwinPre15.is…

vm虚拟机15.5安装黑苹果maxos-10.14

鼎峰_小配针对vm虚拟机安装黑苹果maxos在学习和研究探索的过程中的一点点心得&#xff0c;从刚接触时的一脸懵逼&#xff0c;到后来慢慢的了解了&#xff0c;废话不多说&#xff0c;直接上干货。 一、需要准备的软件&#xff1a; a)解锁虚拟机MAC补丁&#xff1a;Unlocker 3.0…

图文详解如何在VMware Workstation11虚拟机上安装黑苹果Mac OS X 10.10系统

想要体验黑苹果系统当然要借助于VMware虚拟机了&#xff0c;那么下面大家就来看看亦是美网络小编的图文详解如何在VMware Workstation11虚拟机上安装黑苹果Mac OS X 10.10系统的教程吧&#xff01; 小编的安装环境&#xff1a; 实体机windows8.1专业版 VMware workstation 1…

win10上的VMware安装黑Mac(黑苹果、AMD)

使用AMD处理器的笔记本&#xff0c;在虚拟机上安装MAC操作系统。 本机安装配置&#xff1a; 华硕天选 AMD Ryzen 4800H 24G运存 Mac OS 10.13 High Sierra 1. 下载所需资源 所需资源下载链接&#xff1a; mac os 10.13镜像&#xff0c;其他工具 链接: https://pan.baidu.com/s/…

VMware虚拟机安装macOS黑苹果教程,亲测流程,全过程问题解决方案记录

先介绍流程,安装过程中遇到的问题都在最后列出并写出解决方案,找解决方案的直接到最后 准备: 1.VMware虚拟机 我的比较老,为VMware Workstation 14 Pro 14.1.3 build-9474260 2.unlocker 解锁VM的macOS系统 3.macOS的小白版cdr安装包(推荐)或者macOS的dmg安装包 4.如果…

Windows下VMmare黑苹果macOS Catalina 10.15虚拟机安装VMware tools工具

请先安装好macOS Catalina 10.15虚拟机。 VMware 10.15.5安装macOS Catalina 10.15请参考我的博客 Windows下VMware Workstations Pro15.5.0安装macOS Catalina 10.15虚拟机&#xff08;详细教程&#xff09; 如果VMware安装的虚拟机不安装VMware tools工具将无法全屏、进行虚…

Windows 10虚拟机Vmware 安装 黑苹果macos10.14

工具链接 提取码&#xff1a;zko1 VMware16.2.3安装 VMware16.2.3 连接手机有问题&#xff0c;改用 VMware15.5.6-16341506 流程: 虚拟机 MacOS系统解锁创建虚拟机安装macOS安装VMware tools 虚拟机 MacOS系统解锁 使用工具&#xff1a;Unlocker.7z 停止VM服务:停止所有VMwa…

黑苹果从入门到精通:最详细的VMware安装macOS教程

前言 不知为何&#xff0c;以前我发的两篇关于黑苹果的文章或没过审或被删除&#xff0c;最近SMZDM上有不少优质的黑苹果文章发出来&#xff0c;貌似禁令已开&#xff0c;前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列&#xff0c;故有了这篇文章作为系列的开头…

VMware虚拟机安装黑苹果MacOS Mojave系统详细教程

更多资源请百度搜索&#xff1a;前端资源网 欢迎关注我的博客&#xff1a;www.w3h5.com 大家好&#xff0c;我的主要更新渠道是自己搭建的博客&#xff0c;为了节省流量&#xff0c;我开了防盗链。。。所以其他平台可能会有图片不能显示的问题&#xff0c;请转至我的博客进行查…

给windows装个Mac黑苹果虚拟机

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ windows下安装使用苹果Mac虚拟机。” 平常的生活工作中&#xff0c;我大部分时候使用Windows&#xff0c;偶尔用用Mac。实在是用不惯Mac&#xff0c;但有的时候&#xff0c;有些工作还是需要在Mac上搞&#xff0c;不得不用&…

分享Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程

虚拟机VMware安装黑苹果MacOS详细图文教程&#xff0c;安装也比较简单亿破姐这里使用的但是过程挺复杂了。 准备工作 &#xff08;1&#xff09;虚拟机 VMware Workstation Pro &#xff08;2&#xff09;解锁虚拟机MAC补丁 Unlocker &#xff08;3&#xff09;苹果系统懒人…

使用VmWare安装黑苹果系统

目录 1.介绍2.破解安装VMware3.unlocker解锁虚拟机3.1 关闭VMware相关的进程3.2 执行安装命令 4.VmWare创建虚拟机5. 下载并配置镜像以及虚拟机设置5.1 修改镜像5.2 修改虚拟机安装路径文件内容 6. 选择镜像启动虚拟机7.安装macOS系统7.1 开启此虚拟机7.2 选择语言->简体中文…

VMware虚拟机安装黑苹果步骤与常见问题,VMware16,MacOS12.01(Moterey)

资源准备&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1JFtpMVrULiky9l3SvCXX-w 提取码&#xff1a;c452 说明&#xff1a; 1.镜像版本10.14和12.01根据需要选择其一即可&#xff0c;10.14的后缀为cdr&#xff0c;12.01的后缀为ISO&#xff0c;这两种文件VMware都支…

在VM虚拟机上装“黑苹果

如何在VM虚拟机上装“黑苹果” 一: 装机所需 安装过程 一: 装机所需 1、windows7/10.&#xff08;本次使用windows10&#xff09; 2、 VMware workstation Pro 3 、MAC系统镜像(本次使用的是10.14) 4、 unlocker-master(将mac的文件装入VM) 安装过程 1.创建新的虚拟机 2.…

【系统】VMware虚拟机安装黑苹果系统macOS 12.5详细步骤

虽然我更喜欢Windows系统&#xff0c;但有些情况下需要Mac运行某些软件或脚本&#xff0c;又不好意思到处借电脑&#xff0c;这时候只需要在虚拟机运行一下就可以了。之前有分享过macOS.Catalina.10.15安装教程&#xff0c;时隔多年&#xff0c;这次分享的是较新的macOS.Monter…

vmware15安装‘黑苹果’macOS 10.13(17A365)

本人是做前端的&#xff0c;因公司没有mac设备&#xff0c;但万恶的客户总是使用mac测试网站&#xff0c;所以就自己想办法安装一个‘黑苹果’。具体操作见下文。 一、准备工作 1、检测CPU是否支持虚拟技术 检测CPU是否支持虚拟技术需要使用工具&#xff1a;CPU-V 下载地址见官…

高分四号(GF4)——预处理(辐射定标、大气校正、正射校正、图像配准)

1、辐射定标 使用小插件打开GF4数据 选择PMS文件打开&#xff0c;GF4的空间分辨率是50米 初次打开数据&#xff0c;数据的增益和偏移是没有的&#xff0c;或者没有偏移&#xff0c;根据辐射定标的原理&#xff0c;两个值缺少一个就无法进行定标处理&#xff08;下图是已经添加…