教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

《C语言程序设计与数据结构》第10章 文件读写

来源:网络收集 时间:2026-07-29
导读: 第10章 文件读写 C语言程序设计与数据结构 教学提示:存储在变量和数组(即内存)中的数据 是临时的,这些数据在程序运行结束后会消失,而 文件可以用来永久地保存大量的数据。如果有些数 据需要反复使用或永久保存,应该考虑使用文件来 完成。 教学要求:本章

第10章 文件读写

C语言程序设计与数据结构

教学提示:存储在变量和数组(即内存)中的数据 是临时的,这些数据在程序运行结束后会消失,而 文件可以用来永久地保存大量的数据。如果有些数 据需要反复使用或永久保存,应该考虑使用文件来 完成。 教学要求:本章要掌握文件在读写之前必须打开, 读写结束必须关闭。文件可按只读、只写、读写、 追加四种操作方式打开,同时还必须指定文件的类 型是二进制文件还是文本文件。文件可按字节,字 符串,数据块为单位读写,文件也可按指定的格式 进行读写。文件内部的位置指针可指示当前的读写 位置,移动该指针可以对文件实现随机读写。C语言程序设计与数据结构

10.1

文件概述与文件指针

所谓“文件”是指一组相关数据的有序集合。 我们在前几章中已多次接触使用过文件,例如 源程序文件、目标文件、可执行文件、库文件 (头 文件)等。

C语言程序设计与数据结构

10.1.1 文件分类 文件通常是驻留在外部介质(如磁盘等)上的,在使 用时才调入内存中来。C语言把文件看作是由一个 个字符(字节)的数据顺序组成的。它把数据看作 是连续的字符(字节)流,这样它对文件的存取实 际上是以字符(字节)为单位的。输入输出的数据 流的开始和结束只受程序的控制而不受特定符号 (比如回车换行符)的控制。也就是说,C语言在 输出数据到文件中时,并不会自动增加回车换行符 以示结束,在输入时也不会以读入回车换行符作为 数据的间隔。

C语言程序设计与数据结构

10.1.1 文件分类 从用户的角度看,文件可分为普通文件和设备文件 两种。 根据文件的存储形式,可分为ASCII码文件和二进 制文件两种: (1) ASCII文件也称为文本文件,这种文件在磁盘中 存放时每个字符对应一个字节,用于存放对应的 ASCII码。例如一个整型数据1234在文本文件中占 4个字节。我们用Windows自带的记事本软件打开 该类型文件能读懂文件中的内容。 (2) 二进制文件是按二进制的编码方式来存放文件 的。例如一个整型数据230在二进制文件中占2个字 节。C语言程序设计与数据结构

10.1.2 文件类型指针在C语言中要使用文件,必须用一个指针变量指向一个 文件,这个指针称为文件指针。通过文件指针就可对它所 指的文件进行各种操作。 定义文件指针的一般形式为:FILE *指针变量标识符; 其中FILE必须为大写,它是在头文件stdio.h中定义的一 个结构体,该结构体中含有文件名、文件状态和文件当前 位置等信息,我们编程时不必关心FILE结构的细节。 例如: FILE *fp;表示定义了一个名为fp的文件

指针。 如果变量fp已被正确赋值,则可以根据结构变量fp所提供的 信息找到一个文件并实施对该文件的操作。习惯上把fp称为 指向一个文件的指针。

C语言程序设计与数据结构

10.2

文件的打开与关闭

使用文件必须遵循“先打开,再对文件进行读 写操作,最后关闭文件”的原则。 在C语言中,对文件的这些操作都可以由库函 数来完成,对用到的库函数的声明包含在文件 stdio.h中,因此在编程中要操作文件时,要使用头 文件包含命令#include “stdio.h”。

C语言程序设计与数据结构

10.2.1 文件的打开所谓打开文件,实际上是获得文件的各种有关信 息,并使文件指针指向该文件,以便进行下一步操 作。C语言提供了函数fopen来打开文件。 其使用格式为: 文件指针名=fopen(文件名, 使用文件方式); 其中,“文件指针名”必须是已被说明为FILE 类 型的指针变量;“文件名”是将被打开的文件的文 件名,通常是字符串常量或字符串数组(注意路径 的分隔符应使用“\\”);“使用文件方式”是指 文件的类型和操作要求,是一个由一对双引号括起 来的字符串,共有12种,具体的符号表示和含义见 表10-1。C语言程序设计与数据结构

文件使用方式 “rt” 打开一个已经存在的文本文件,只能读取数据

含义

“wt”

打开一个文本文件,只能写入数据。若文件不存在,则自动建立一个新文件接受写入的数据;若文件存在,则删除文件中原有 内容,并接受写入的数据(覆盖)打开一个已经存在的文本文件,只能写入数据并且追加在文件的尾部 打开一个已经存在的文本文件,可以读取数据,也可以写入数据 打开一个文本文件,可以读取数据,也可以写入数据。若文件不存在,则自动建立一个新文件接受写入的数据;若文件存在, 则删除文件中原有内容,并接受写入的数据(覆盖) 打开一个已经存在的文本文件,可以读取数据,也可以写入数据(追加在文件的尾部)

“a” “r+” “w+”

“a+”

“rb” “wb”

打开一个已经存在的二进制文件,只能读取数据 打开一个二进制文件,只能写入数据。若文件不存在,则自动建立一个新文件接受写入的数据;若文件存在,则删除文件中原 有内容并接受写入的数据(覆盖) 打开一个已经存在的二进制文件,只能写入数据(追加在文件的尾部) 打开一个已经存在的二进制文件,可以读取数据,也可以写入数据 打开一个二进制文件,可以读取数据,也可以写入数据。若文件不存在,则自动建立一个新文件接受写入的数据;若文件存在, 则删除文件中原有内容,并接受写入的数据(覆盖) 打开一个已经存在的二进

制文件,可以读取数据,也可以写入数据(追加在文件的尾部)

“ab” “rb+” “wb+”

“ab+”

C语言程序设计与数据结构

fopen打开文件例如: FILE *fpTa; fpTa=fopen("c:\\cprogram\\abc","rb"); /*反斜线“\\”中的第一个表示转义字符*/ 其意义是打开C驱动器磁盘的cprogram子目录下的 文件abc,这是一个二进制文件,只允许按二进制 方式进行读操作。 又如: FILE *fp; fp= fopen ("mytest1.txt","r"); 其意义是在当前目录下打开文件mytest1.txt,只允 许进行“读”操作,并使fp指向该文件。C语言程序设计与数据结构

10.2.2 文件关闭函数在使用完一个文件以后,应该将该文件关闭,以 防止它再被调用或丢失数据。“关闭”就是使文件 指针变量不再指向该文件,也就是文件指针变量与 该文件“断开”,此后不能通过该指针对原来与其 相联系的文件进行读、写操作(除非再次打开该文 件,使文件指针变量重新指向该文件)。 fclose()函数用来关闭一个已经由fopen()函数打开 的文件,正常完成关闭文件操作时,fclose函数返 回值为0,有错误发生则返回非零值。 其调用的一般形式为: fclose(文件指针); 例如: fclose(fp);C语言程序设计与数据结构

10.3

文件位置指针的有关函数

在文件内部有一个位置指针,用来指向文件的当 前读写字节。在文件打开时,该位置指针总是指向 文件的第一个字节。使用下面章节介绍的fgetc等函 数对文件进行读写后,该位置指针将自动向后移动。 但文件指针和文件内部的位置指针不是一回事。 文件指针是指向整个文件的,须在程序中定义说明, 只要不重新赋值,文件指针的值是不变的。文件内 部的位置指针用以指示文件内部的当前读写位置, 每读写一次,该指针均自动向后移动,它不需在程 序中定义说明,而是由系统自动设置的。

C语言程序设计与数据结构

顺序读写和随机读写文件的读写方式分为顺序读写和随机读写。 (1) 顺序读写即读写文件只能从头开始,顺序读写各个数据。 但在实际问题中常要求只读写文件中某一指定的部分,为 了解决这个问题可移动文件内部的位置指针到需要读写的 位置,再进行读写,这种读写称为随 …… 此处隐藏:3338字,全部文档内容请下载后查看。喜欢就下载吧 ……

《C语言程序设计与数据结构》第10章 文件读写.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/128366.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)