《C语言程序设计与数据结构》第10章 文件读写
第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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




