- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件的读写操作.ppt
第7章 文件操作;第7章 文件操作;7.1 文件及文件结构;过去使用的C语言版本中,对文件有两种处理方法,即非缓冲型文件系统和缓冲型文件系统。
缓冲型文件系统中系统会自动地在内存中为每一个正在使用的文件开辟一个文件缓冲区,在内存与外部介质进行数据的传输操作(写入文件和读取文件)时,中间需要通过一个文件缓冲区,当这个缓冲区被填满时,数据才被传输出去(写入和读取),见图7-1。 ;C语言中的文件是一个字符(或字节)数据的有序序列,所以也称为是流式文件。按数据组织形式的不同分为文本文件(字符数据流)和二进制文件(二进制数据流)。
这两种存放方式的相同点是读/写数据流的开始、结束的位置和时间都由程序予以控制;
不同点是前者的存取操作以字符为单位,便于对字符数据进行处理,但由于一个字符占用一个字节,所以文本文件占用的存储空间较多,且此类文件被读入内存时需要一定的转换时间。文本文件包括如*.c,*.txt等类型的文件。
后者的存取操作以字节为单位,二进制文件可直接被读入内存,无需转换时间,存放结构紧凑,可节省存储空间,但由于一个字节并不对应一个字符,所以不能直接输出字符形式。一般程序运行的中间结果数据暂时保存在外存上,随即又需要被读入内存时,常用二进制文件保存,如*.obj, *.exe,*.bin等类型的文件。 ;C语言中的文件按存放设备的不同分为设备文件和磁盘文件。
根据对文件访问(读/写)形式的不同可将文件分为顺序访问文件和随机访问文件两种。
读写位置指针是当一个文件被打开后由系统定义用来标识文件读写位置的指针,它存在于FILE类型的指针变量中。
在顺序访问文件中,读写位置指针总是按照字节的顺序由前往后顺序移动,不能随意跳转到文件某个指定位置进行读取/写入操作。
在随机访问文件中,读写位置指针可以根据需要进行调整,自由地跳转到文件某个位置进行读取/写入操作,即随机地访问文件。 ;7.2 文件的基本操作;除了上述标准文件以外的其他文件称为一般文件。对一般文件的处理过程是:
(1)打开文件,在内存中建立文件缓冲区,指定相应的文件类型指针变量;
(2)文件的读写操作;
(3)关闭文件。;文件类型指针变量(FILE类型变量)是指一个结构类型变量,该结构类型变量中存放对正在被使用的文件开辟的缓冲区中与之相关的信息。
在Turbo C2.0的标准输入输出头文件stdio.h中定义了一个结构类型FILE类型(文件类型),它的定义如下:
typedef struct {
short level; /*缓冲区“满”或“空”的程度*/
unsigned flags; /*文件状态标志*/
char fd; /*文件描述符*/
unsigned char hold; /*如无缓冲区不读取字符标志*/
short bsize; /*缓冲区的大小*/
unsigned char *buffer; /*数据缓冲区的位置*/
unsigned char *curp; /*当前的指向指针*/
unsigned istemp; /*临时文件指示符*/
short token; /*用于有效性检查*/
} FILE;;每个文件类型变量存放了对应的文件信息。
文件类型指针是一个指向FILE(文件类型)结构类型的指针变量,用以指向某个文件在内存中的缓冲区的首地址,通过它指向的FILE类型变量就能读取文件信息,并由此访问该文件。
因此,在对每个文件进行读/写操作之前,必须事先定义一个指向FILE类型的指针变量,即文件类型指针变量。
定义格式如下:
FILE *指针变量名1 [, *指针变量名2, … ];
例如:
FILE *fp; /*定义一个文件类型指针变量fp */
FILE *fp1, *fp2, *fp3;/*如果程序中要同时处理3个文件,则要定义3个文件类型指针变量*/ ;7.2.1 文件的打开和关闭
1.文件的打开
文件在进行读/写操作之前需要被打开,C中通过fopen(参数)函数打开文件完成文件打开的操作。
打开文件函数原型如下:
FILE *fopen( char *path, char *mode )
具体处理方式见表7-1。
;例1:
fopen ( ”f
您可能关注的文档
最近下载
- Titans系列混合矩阵切换器说明书[汇编].pdf VIP
- 灌区_工程旁站监理方案(3篇).docx VIP
- 浙江省学军、镇海等名校2025年高考模拟命题比赛英语试题试卷含解析.doc VIP
- 05s502图集阀门井图集 .docx VIP
- 青海省泽库县2025年上半年公开招聘辅警试题含答案分析.docx VIP
- C++语言程序设计课后答案(郑莉第4版).pdf VIP
- 大学生人际交往ppt完整版.pptx VIP
- 《飞机结构与系统》全套课件.pptx
- (高清版)DB12∕T 1000-2020 电动自行车消防安全管理规范 .pdf VIP
- 2026届高考英语读后续写 十大语法万能句式 (默写版+背诵版).docx
原创力文档


文档评论(0)