【C语言进阶】文件操作:文件的打开与文件的读写以及文本文件和二进制文件

您所在的位置:网站首页 c语言文件操作的函数怎么用 【C语言进阶】文件操作:文件的打开与文件的读写以及文本文件和二进制文件

【C语言进阶】文件操作:文件的打开与文件的读写以及文本文件和二进制文件

2024-07-07 00:25:50| 来源: 网络整理| 查看: 265

目录

1、为什么使用文件

2、什么是文件 

2.1 程序文件

2.2 数据文件 

2.3 文件名

3、文件的打开和关闭 

3.1文件指针 

3.2文件的打开与关闭 

4、文件的顺序读写 

4.1 几个函数的区别

5、文件随机读写 

 5.1 fseek

5.2 ftell 

5.3 rewind 

6、文本文件和二进制文件 

7、文件读取结束的判定 

 7.1 被错误使用的feof

8、文件缓冲区

1、为什么使用文件

我们学习结构体时,写了静态通信录,可以在通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,数据又要重新录入,当程序退出时,通讯录中的数据就不存在了,等下次运行通讯录,数据又要重新录入。我们想既然是通讯录就应该把信息记录下来,只有我们删除数据时,数据才不复存在。

使用文件主要是为了数据持久化、用户交互和数据交换。文件可以存储数据,即使程序关闭或计算机重启,数据也不会丢失。同时,文件也是程序与用户之间以及不同程序之间交换信息的重要媒介。

2、什么是文件 

磁盘上的文件就是文件,但在程序设计中,我们一般只谈程序文件和数据文件

2.1 程序文件

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

2.2 数据文件 

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

这篇文章所要讨论的是数据文件。以前所处理的数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘文件。

2.3 文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀

比如:c:\code\test.txt

3、文件的打开和关闭  3.1文件指针 

 缓冲文件系统中,关键的概念是“文件类型指针”,简称"文件指针“。

每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE.

//文件类型声明 typedef struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_temfname; }FILE;

不同的C编译器的FILE类型包含的内容不完全相同,但基本差不多。

每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不用过于担心。

一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便

FILE* pf;//文件指针变量 

定义pf是一个指向FILE类型数据的指针变量。可以使用pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它相关联的文件

3.2文件的打开与关闭 

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。

在编写程序的时候,在打开文件的同时,都会返回一个FILE*  的指针变量指向该文件,也相当于建立了指针和文件的关系。

ANSIC规定使用fopen函数来打开文件,fclose来关闭文件。

//打开文件 FILE* fopen(const char* filename, const char* mode);//filename是文件名,mode是文件打开模式(读或写) //关闭文件 int fclose(FILE* stream);

文件的使用: 

#include #include #include int main() { FILE* pf=fopen("test.txt", "r");//在对应路径创建文件名为“text”,系统默认扩展名为txt if (pf == NULL) { printf("%s\n", strerror(errno)); return 1; } //读文件 //...... //关闭文件 fclose(pf); pf = NULL; return 0; } 文件使用方式含义如果指定文件不存在"r"(只读)为了输入数据打开一个已经存在的文本文件出错"w"(只写)为了输出数据打开一个文本文件建立一个新文件"a"(追加)向文本文件尾添加数据建立一个新文件"rb"(只读)为了输入数据打开一个二进制文本出错"wb"(只写)为了输出数据打开一个二进制文本建立一个新文件"ab"(追加)向一个二进制文件尾添加数据出错"r+"(读写)为了读和写打开一个文本文件出错"w+"(读写)为了读和写建立一个文本文件建立一个新文件"a+"(读写)打开一个文件,在文件尾进行读写建立一个新文件"rb+"(读写)为了读和写打开一个二进制文件出错"wb+"(读写)为了读和写新建一个二进制文件建立一个新文件"ab+"(读写)为了追加和读新建一个二级制文本建立一个新文件 4、文件的顺序读写  功能函数名适用场景字符输入函数fgetc所有输入流字符输出函数fputc所有输出流文本行输入函数fgets所有输入流文本行输出函数fputs所有输出流格式化输入函数fscanf所有输入流格式化输出函数fprintf所有输出流二进制输入fread文件二进制输出fwrite文件 /举个栗子 #include #include #include int main() { FILE* pf = fopen("text.txt.txt", "w"); if (pf == NULL) { printf("%s\n", strerror(errno)); return 1; } //写文件 char i = 0; for (i = 'a'; i


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭