- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章文件清华大学版孙承爱著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
- 年培育1000只种鹿厂扩建项目可行性研究报告.doc
- 年处理6万吨铁选尾矿生产10万立方米保温砌块项目可行性研究报告-2013年.doc
- 年产30万吨热轧镀锌板及30万吨超薄热镀锌板项目可行性研究报告.doc
- 2024年河北传媒学院马克思主义基本原理概论期末考试题完美版.docx
- 2024年沧州交通学院马克思主义基本原理概论期末考试题汇编.docx
- 灯具厂项目可行性研究报告.doc
- 贵州蓉金房地产开发有限公司建筑节能工程评估报告.doc
- 2024年景东县招教考试备考题库附答案.docx
- 2024年柳河县招教考试备考题库完美版.docx
- 粮食危机下土豆作为我国主食的可行性研究——基于我国传统主食的演化视角-经济项目立项申请书.doc
最近下载
- 《儒林外史》11—20回阅读成果检测题附答案.docx VIP
- 医疗器械体系文件-变更控制程序及下附表单.pdf VIP
- 分离工程(第二版)叶庆国课后习题解答.pdf
- 研究酚醛环氧乙烯基酯树脂的固化特性与耐热性.docx VIP
- “新型铜(MC)、铝(MA)导电膜”项目环评(2021年新版环评)环境影响报告表.pdf VIP
- 2024人教版五年级全一册信息科技 第6课《判断选择用分支》教案.pdf VIP
- IPC-J-STD-001D焊接标准培训教材.pptx VIP
- 体例格式10:工学一体化课程《小型网络安装与调试》任务1学习任务信息页.docx VIP
- 2025年四川省国家工作人员法治素养测评(卷二).docx
- 白内障手术患者及人工晶体的选择.ppt VIP
原创力文档


文档评论(0)