第十一章文件清华大学版孙承爱著c语言.ppt

第十一章文件清华大学版孙承爱著c语言.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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,

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档