- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[]第9章 文件
第9章 文件 9.1 文件及文件指针 9.1.1文件的概念 文件是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。从用户的角度看,文件可分为普通文件和设备文件两种。 普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以程序文件、数据文件等。普通文件通常是驻留在外部介质(如磁盘等)上的,在使用时才被调入内存。操作系统是以文件为单位对数据进行管理的。也就是说,如果想找到存储在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部存储数据则必须先建立一个文件,才能向它输出数据。 C语言把文件看作是字符或字节的序列集合。根据数据的组织形式,可分为ASCII文件(又称为文本文件)和二进制文件。 ASCII文件在磁盘中存放时,每个字节存放一个ASCII码,每一个ASCII码相应于一个可以显示的字符。ASCII文件按字符显示,因此使用人员能读懂文件内容。 二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。 对于需要暂时保存在外存上以后又要输入到内存的中间结果数据,通常用二进制形式保存。 C的文件系统可分为缓冲文件系统和非缓冲文件系统两类。 缓冲文件系统又称为高级磁盘输入输出系统。系统自动地在内存区为每一个正在使用的文件名开辟一个缓冲区:从磁盘文件中读取数据时,先将数据读到缓冲区,然后再从缓冲区将数据快速送到应用程序的变量中去。下次再读数据时,首先判断缓冲区中是否有数据,如果有,则直接从缓冲区中读,否则就要从磁盘中读取。从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。 非缓冲文件系统又称为低级磁盘输入输出系统,系统不为这类文件自动提供文件缓冲区,而由用户自己根据需要设置。 9.1.2文件指针 每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息。这些信息保存在一个结构体变量中。该结构体类型是系统定义的,类型名为FILE,在stdio.h中定义如下: C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。 例如:FILE * fp;定义了一个能够指向某个文件的指针变量fp。 9.2 文件的打开与关闭 文件在进行读写操作之前要先打开,使用完毕要及时关闭。 9.2.1文件的打开(fopen函数) fopen函数的调用方式通常为: FILE * fp; fp=fopen(文件名,文件使用方式); 例如:fp=fopen(al,r); 它表示要打开名字为al的文件,使用文件方式为“只读”(r代表read,即读入),fopen函数返回指向al文件的指针并赋给fp,这样fp就和文件al相联系了,或者说,fp指向al文件。 文件使用的方式共有12种,如表9.1所示 说明 ⑴ 文件使用方式由r,w,a,t,b,+六个字符进行组合,各字符的含义是: r(read): 读 w(write): 写 a(append): 追加 t(text): 文本文件,可省略不写 b(banary): 二进制文件 +: 读和写 ⑵ 用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。 ⑶ 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。 ⑷ 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。 ⑸ 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。 ⑹ 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。 9.2.2文件关闭函数(fclose函数) fclose函数调用的一般形式是: fclose(文件指针); 例如: fclose(fp); 正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生。 9.3 文件的读写 即将内存变量中的数据拷贝到文件中去。文件打开之后,就可以对它进行读写操作。 C语言在头文件stdio.h中提供了多种文件读写的函数:字符读写函数、字符串读写函数、数据块读写函数、格式化读写函数等。 9.3.1字符读写函数fgetc和fputc 1.读字符函数fgetc 格式:fgetc(
您可能关注的文档
最近下载
- 临床药学专业知识理论考核试题题库与答案.docx
- 土石坝安全监测.pptx VIP
- 河南南阳艾草产业发展现状、问题及对策研究.pdf VIP
- MES系统引领铜加工行业智能化转型.docx
- 五年级下册英语教案-Unit5 I'm-cleaning my room.(Lesson-26)|人教精通版.doc VIP
- 人教版数学一年级上册《 9加几》校本作业设计.pdf
- 航海模拟器-大连海事大学研究生院.doc
- DIN1045-2-2008 国外国际标准.pdf
- 佳能R62使用说明书【必威体育精装版完整电子版】.pdf
- [检验检测标准]SHT 0253-1992_轻质石油产品中总硫含量测定法(电量法).pdf
文档评论(0)