- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章文件清华大学版孙承爱著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,
您可能关注的文档
- 第2章-企业的使命与目标.ppt
- 第2章个体行为基础新.ppt
- 第2章公共关系史.ppt
- 第2章企业愿景-使命与伦理追求.ppt
- 第2章劳动法的产生与发展.ppt
- 第2章定义研究问题.ppt
- 第2单元基础知识汇总.ppt
- 第2章整合营销传播的模式规划.ppt
- 第2章传播学的研究对象.ppt
- 第2章心理咨询的要素.ppt
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
文档评论(0)