- 3
- 0
- 约1.32万字
- 约 46页
- 2017-04-23 发布于四川
- 举报
第十一章节文件清华大学版孙承爱著c语言
;任何程序都依赖于输入输出。程序执行时(进程)从输入获得相应的初始数据;程序执行(进程)结束前通过输出把结果显示给用户,或者保存下来再一次使用。我们前面的程序都是通过标准输入输出(如getchar、printf、scanf等函数)同外界交互。通过这种方式可以完成许多程序,但也有很多局限性。此外,由于目前计算机内存器件的特性,保存于其中的数据在断电后将立刻消失。因此,为了持续性地保存数据,就必须借助外存设备,如磁盘、磁带等。这样,写程序时也就需要了解如何访问和使用外存,程序语言也必须提供这方面的功能。;程序向外传送信息的操作是输出,从外部取得信息的操作是输入。输入输出操作的对象可以是文件,也可以是一些标准设备,如键盘、显示器、打印机或者其他设备。许多操作系统都采用统一的观点,即把所有与输入输出有关的操作都统一到文件的概念中,程序与外部的联系都通过文件概念实现。常常把键盘、显示器等设备也看作文件,甚至给定了“文件名”,对它们的操作都通过相应文件名进行。;11.2 流和文件指针 ;正在执行的程序;标准库定义的输入输出称为缓冲式输入输出,这是一种常用的输入输出方式。由于外存(磁盘、磁带等)存取速度较慢,一般采用成块传递方式,一次传递一批数据。而程序里对数据的使用则往往不是这样。为了中和两者间在数据提供和使用方面的差异,通常开辟一块存储区(称为数据缓冲区,简称缓冲区),作为文件与使用数据的程序之间的传递媒介。图11.2给出了带缓冲区的输入输出工作方式。;11.2.2 文件指针;因此也可以认为文件指针就是流的体现,文件指针通常被当作流的代名词。
格式:FILE 变量名列表
功能:定义文件型指针变量。
例如:FILE f[3];
FILE *fp;
【说明】① FILE是一个结构体类型,在头文件stdio.h中用typedef声明,用以存放被打开的文件的信息。这些信息包括:缓冲区的位置、缓冲区中当前字符的位置、文件的读或写的状态、是否出错或是否已经到达文件结尾等等。
② f是一个FILE类型的结构体数组,它有3个元素,可以用来存放3个文件的信息。
③ fp是一个指向FILE类型结构体的指针(简称文件指针),可以指向某一个文件的结构体。;【注意】① FILE像int一样都是类型名,而不是一个结构体变量。② 文件指针fp和其他的指针类型变量一样,使用时要注意先赋值。文件指针的值一般通过打开一个文件的fopen函数(详见11.3.1节)获得,其他操作文件的函数都要用到一个已赋值的文件指针。使用一个无法确定指向哪个文件的文件指针显然是没有意义的,而且也是危险的。③ 访问和操作文件都是通过文件指针(指向FILE结构体类型的指针)来进行的。也就是说,通过文件指针变量能够找到与它相关的文件。如果有n个文件,一般应设n个文件指针变量,使它们分别指向n个文件,分别实现对相应文件的访问。;④ FILE类型的结构体在不同的C语言环境里各不相同,也无法定义FILE类型的结构体变量,只能通过指针来访问。我们不必关心FILE类型的具体定义,应把它看成一种抽象的东西。程序里不需要直接操作这种类型,只需通过标准库函数使用它。⑤ 3个标准文件指针:标准输入stdin、标准输出stdout和标准错误stderr,都是FILE类型的指针常量,对它们不能进行赋值。
11.3.1 fopen函数和fclose函数
1.fopen函数
原型:FILE *fopen(char *filename, char *mode)
格式:返回文件指针 fopen(文件名, 访问文件的方式)
功能:打开一个文件,文件名和访问方式由参数给出,并返回一个FILE类型的指针。
例如:FILE *fp;
fp=fopen(/tmp/test.txt, r); ;【说明】① fopen的返回值是一个文件指针。如果打开文件成功,则文件指针fp指向被打开的文件(实际上,fp指向存放被打开文件信息的FILE类型的结构体),否则被fp赋值为NULL(0)。
② fopen的第一个参数是字符串,指定希望打开的文件名。文件名用“”括起来,可以是相对路径也可以是绝对路径,在文件名前用“/”把目录名隔开。
③ fopen的第二个参数用于指定访问文件的方式,也是一个字符串。它规定了对被打开的文件所能进行的操作。文件的访问方式见表11.1。
;2.fclose函数
关闭文件就是使文件指针不再指向文件,此后不能再通过该指针对原来指向的文件进行读写操作。关闭文件通过函数fclose完成。
原型:int *fclose(FILE *fp)
格式:返回值 fclose(文件指针)。
功能:断开与文件指针(形参)所指向文件的联系。
例如:FILE *fp;
fp=fopen(/tmp/test.txt,
您可能关注的文档
- 第九章节重量分析法.ppt
- 第二十章节人人微博站.ppt
- 第九课西欧、日本经济的发展.ppt
- 第二十八章节Oracle服务器配置和管理.ppt
- 第三课政府的职能.公开课.ppt
- 第二单元第一章节第一节练习使用显微镜.ppt
- 第二十章节国际经济部门的作用.ppt
- 第二单元第一课发展职业生涯要从所学专业起步第一课时.ppt
- 第二单元第四课柳永词两首.ppt
- 第二章节 组织行为学的研究方法.ppt
- 北京卷语文高考真题.doc
- 全套施工安全操作规程.docx
- 专题资料德汉公选面试培训资料.doc
- 爱会融化你心:小女孩与老人温情邂逅.pdf
- 六年级语文下册第四单元12为人民服务教案新人教版.doc
- 2025_2026学年高中语文第一单元2立在地球边上放号红烛峨日朵雪峰之侧致云雀同步基础专练含解析新人教版必修上册.docx
- 2026届高考英语一轮复习第一部分教材知识突破必修四Unit5Themeparks学案新人教版.doc
- 浙江省苍南县金乡卫城中学2025_2026学年高一语文下学期第一次月考试题含解析.doc
- 统考版2026届高考英语一轮复习选修8Unit23Conflict教师用书教案北师大版.doc
- 2026学年高二语文下学期入学考试试题一.doc
最近下载
- 乐购Hymall连锁超市-收银员排班工具使用作业规范.pdf VIP
- 黑龙江省教育学会示范性高中专业委员会2025届高三下学期第一次模拟考试 语文 含答案.docx VIP
- ISPE第五部分试车与确认课件.pptx VIP
- 【2026年春新教材】部编版小学二年级下册道德与法治全册教案(教学设计).docx
- 数学北师大版八年级下册多边形的内角和教学设计.docx VIP
- 守正创新担使命,凝心聚力启新程——校长在2026年春季学期全体教师开学大会上的讲话.docx
- 《体育课程与教学论》全套PPT课件.pptx VIP
- 第一章税收初阶资料.ppt VIP
- 数据接口安全管理制度.docx VIP
- 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷.docx VIP
原创力文档

文档评论(0)