对文件的输入输出PPT课件.ppt
《对文件的输入输出PPT课件.ppt》由会员分享,可在线阅读,更多相关《对文件的输入输出PPT课件.ppt(97页珍藏版)》请在咨信网上搜索。
1、第第10章章 对文件的文件的输入入输出出10.1 文件的有关基本知文件的有关基本知识10.2 打开与关打开与关闭文件文件10.3 顺序序读写数据文件写数据文件10.4 随机随机读写数据文件写数据文件10.5 文件文件读写的出写的出错检测1.10.1 文件的有关基本知文件的有关基本知识10.1.1 什么是文件什么是文件10.1.2 文件名文件名10.1.3 文件的分文件的分类10.1.4 文件文件缓冲区冲区10.1.5 文件文件类型指型指针2.10.1.1 什么是文件什么是文件文件有不同的文件有不同的类型,在程序型,在程序设计中,主要中,主要用到两种文件:用到两种文件:(1)程序文件程序文件。包
2、括。包括源程序文件源程序文件(后后缀为.c)、目目标文件文件(后后缀为.obj)、可可执行文件行文件(后后缀为.exe)等。等。这种文件的内容是程序代种文件的内容是程序代码。3.10.1.1 什么是文件什么是文件文件有不同的文件有不同的类型,在程序型,在程序设计中,主要中,主要用到两种文件:用到两种文件:(2)数据文件数据文件。文件的内容不是程序,而是供。文件的内容不是程序,而是供程序运行程序运行时读写的数据,如在程序运行写的数据,如在程序运行过程中程中输出到磁出到磁盘(或其他外部或其他外部设备)的数据,或在程的数据,或在程序运行序运行过程中供程中供读入的数据。如一批学生的成入的数据。如一批学
3、生的成绩数据,或数据,或货物交易的数据等。物交易的数据等。本章主要本章主要讨论的是的是数据文件数据文件4.10.1.1 什么是文件什么是文件在以前各章中所在以前各章中所处理的数据的理的数据的输入和入和输出出,从从终端的端的键盘输入数据,运行入数据,运行结果果输出到出到终端端显示器上示器上常常需要将一些数据常常需要将一些数据输出到磁出到磁盘上保存起上保存起来,以后来,以后使用使用这就要用到磁就要用到磁盘文件文件5.10.1.1 什么是文件什么是文件操作系操作系统把各种把各种设备都都统一作一作为文件文件处理理从操作系从操作系统的角度看,每一个与主机相的角度看,每一个与主机相联的的输入入输出出设备都
4、看作是文件。例如,都看作是文件。例如,u终端端键盘是是输入文件入文件u显示屏和打印机是示屏和打印机是输出文件出文件6.10.1.1 什么是文件什么是文件“文件文件”指存指存储在外部介在外部介质上数据的集合上数据的集合u一批数据是以文件的形式存放在外部介一批数据是以文件的形式存放在外部介质上的上的u操作系操作系统是以文件是以文件为单位位对数据数据进行管理行管理u想找存放在外部介想找存放在外部介质上的数据,先按文件名找上的数据,先按文件名找到所指定的文件,然后再从到所指定的文件,然后再从该文件文件读数据数据u要向外部介要向外部介质上存上存储数据也必数据也必须先建立一个文先建立一个文件(以文件名作件
5、(以文件名作为标志),才能向它志),才能向它输出数据出数据7.10.1.1 什么是文件什么是文件输入入输出是数据出是数据传送的送的过程,数据如流水程,数据如流水一一样从一从一处流向另一流向另一处,因此常将,因此常将输入入输出形象地称出形象地称为流流(stream),即数据流。,即数据流。流表示了信息从源到目的端的流流表示了信息从源到目的端的流动。8.10.1.1 什么是文件什么是文件输入操作入操作时,数据从文件流向,数据从文件流向计算机内存算机内存输出操作出操作时,数据从,数据从计算机流向文件算机流向文件无无论是用是用Word打开或保存文件,打开或保存文件,还是是C程程序中的序中的输入入输出都
6、是通出都是通过操作系操作系统进行的行的“流流”是一个是一个传输通道,数据可以从运行通道,数据可以从运行环境流入程序中,或从程序流至运行境流入程序中,或从程序流至运行环境境9.10.1.1 什么是文件什么是文件从从C程序的程序的观点来看,无点来看,无论程序一次程序一次读写一写一个字符,或一行文字,或一个指定的数据个字符,或一行文字,或一个指定的数据区,作区,作为输入入输出的各种文件或出的各种文件或设备都是都是统一以一以逻辑数据流数据流的方式出的方式出现的。的。语言言把文件看作是一个字符把文件看作是一个字符(或字(或字节)的序列。的序列。一个一个输入入输出流就是一个字符流或字出流就是一个字符流或字
7、节(内内容容为二二进制数据制数据)流。流。10.10.1.1 什么是文件什么是文件的数据文件由一的数据文件由一连串的字符(或字串的字符(或字节)组成,而不考成,而不考虑行的界限,两行数据行的界限,两行数据间不不会自会自动加分隔符,加分隔符,对文件的存取是以字符文件的存取是以字符(字(字节)为单位的。位的。输入入输出数据流的开出数据流的开始和始和结束束仅受程序控制而不受物理符号受程序控制而不受物理符号(如回(如回车换行符)控制,行符)控制,这就增加了就增加了处理理的灵活性。的灵活性。这种文件称种文件称为流式文件流式文件。11.10.1.2 文件名文件名文件要有一个唯一的文件文件要有一个唯一的文件
8、标识,以便用,以便用户识别和引用。和引用。文件文件标识包括三部分:包括三部分:(1)文件路径文件路径(2)文件名主干文件名主干(3)文件后文件后缀12.10.1.2 文件名文件名文件路径表示文件在外部存文件路径表示文件在外部存储设备中的位中的位置。如:置。如:D:CCtempfile1.datu表示表示file1.dat文件存放在文件存放在D盘中的中的CC目目录下下的的temp子目子目录下面下面文件路径文件路径文件名主干文件名主干文件后文件后缀13.10.1.2 文件名文件名文件路径表示文件在外部存文件路径表示文件在外部存储设备中的位中的位置。如:置。如:D:CCtempfile1.datu表
9、示表示file1.dat文件存放在文件存放在D盘中的中的CC目目录下下的的temp子目子目录下面下面文件名文件名14.10.1.2 文件名文件名文件路径表示文件在外部存文件路径表示文件在外部存储设备中的位中的位置。如:置。如:D:CCtempfile1.datu表示表示file1.dat文件存放在文件存放在D盘中的中的CC目目录下下的的temp子目子目录下面下面命名命名规则遵循遵循标识符的命名符的命名规则15.10.1.2 文件名文件名文件路径表示文件在外部存文件路径表示文件在外部存储设备中的位中的位置。如:置。如:D:CCtempfile1.datu表示表示file1.dat文件存放在文件存
10、放在D盘中的中的CC目目录下下的的temp子目子目录下面下面一般不超一般不超过3个字母个字母(doc、txt、dat、c、cpp、obj、exe、ppt、bmp等)等)16.10.1.3 文件的分文件的分类根据数据的根据数据的组织形式,数据文件可分形式,数据文件可分为ASCII文件文件和和二二进制文件制文件。u数据在内存中是以二数据在内存中是以二进制形式存制形式存储的,如果不的,如果不加加转换地地输出到外存,就是出到外存,就是二二进制文件制文件u如果要求在外存上以如果要求在外存上以ASCII代代码形式存形式存储,则需要在存需要在存储前前进行行转换uASCII文件又称文本文件,每一个字文件又称文
11、本文件,每一个字节放一放一个字符的个字符的ASCII代代码17.10.1.3 文件的分文件的分类字符一律以字符一律以ASCII形式存形式存储数数值型数据既可以用型数据既可以用ASCII形式存形式存储,也,也可以用二可以用二进制形式存制形式存储u如有整数如有整数10000,如果用,如果用ASCII码形式形式输出出到磁到磁盘,则在磁在磁盘中占个字中占个字节(每一个字符每一个字符占一个字占一个字节),而用二,而用二进制形式制形式输出,出,则在磁在磁盘上只占上只占4个字个字节(用用VC+C时)18.10.1.3 文件的分文件的分类001100010011000000110000001100000011
12、0000(1)(0)(0)(0)(0)ASCII形式形式00000000000000000010011100010000二二进制形式制形式(10000)19.10.1.4 文件文件缓冲区冲区ANSI C标准采用准采用“缓冲文件系冲文件系统”处理理数据文件数据文件所所谓缓冲文件系冲文件系统是指系是指系统自自动地在内存地在内存区区为程序中每一个正在使用的文件开辟一程序中每一个正在使用的文件开辟一个文件个文件缓冲区冲区20.10.1.4 文件文件缓冲区冲区从内存向磁从内存向磁盘输出数据必出数据必须先送到内存中先送到内存中的的缓冲区,装冲区,装满缓冲区后才一起送到磁冲区后才一起送到磁盘去去如果从磁如果
13、从磁盘向向计算机算机读入数据,入数据,则一次从一次从磁磁盘文件将一批数据文件将一批数据输入到内存入到内存缓冲区冲区(充(充满缓冲区),然后再从冲区),然后再从缓冲区逐个地冲区逐个地将数据送到程序数据区(将数据送到程序数据区(给程序程序变量)量)21.10.1.4 文件文件缓冲区冲区程序数据区程序数据区输出文件出文件缓冲区冲区输入文件入文件缓冲区冲区磁磁盘从内存向磁从内存向磁盘输出数据出数据装装满缓冲区冲区22.10.1.4 文件文件缓冲区冲区程序数据区程序数据区输出文件出文件缓冲区冲区输入文件入文件缓冲区冲区磁磁盘从磁从磁盘向向计算机算机读入数据入数据充充满缓冲区冲区23.10.1.5 文件文
14、件类型指型指针缓冲文件系冲文件系统中,关中,关键的概念是的概念是“文件文件类型指型指针”,简称称“文件指文件指针”u每个被使用的文件都在内存中开辟一个相每个被使用的文件都在内存中开辟一个相应的的文件信息区,用来存放文件的有关信息(如文文件信息区,用来存放文件的有关信息(如文件的名字、文件状件的名字、文件状态及文件当前位置等)及文件当前位置等)u这些信息是保存在一个些信息是保存在一个结构体构体变量中的。量中的。该结构体构体类型是由系型是由系统声明的,取名声明的,取名为FILE24.10.1.5 文件文件类型指型指针声明声明FILE结构体构体类型的信息包含在型的信息包含在头文件文件“stdio.h
15、”中中一般一般设置一个指向置一个指向FILE类型型变量的指量的指针变量,然后通量,然后通过它来引用它来引用这些些FILE类型型变量量25.10.1.5 文件文件类型指型指针FILE*fp1,*fp2,*fp3;文件文件f1的的文件信息区文件信息区fp1文件文件f2的的文件信息区文件信息区fp2文件文件f3的的文件信息区文件信息区fp326.10.2 打开与关打开与关闭文件文件10.2.1 用用fopen函数打开数据文件函数打开数据文件10.2.2 用用fclose函数关函数关闭数据文件数据文件27.10.2.1 用用fopen函数打开数据文件函数打开数据文件对文件文件读写之前写之前应该“打开打
16、开”该文件,在文件,在使用使用结束之后束之后应“关关闭”该文件。文件。所所谓“打开打开”是指是指为文件建立相文件建立相应的信息的信息区区(用来存放有关文件的信息用来存放有关文件的信息)和文件和文件缓冲冲区区(用来用来暂时存放存放输入入输出的数据出的数据)。28.10.2.1 用用fopen函数打开数据文件函数打开数据文件在在编写程序写程序时,在打开文件的同,在打开文件的同时,一般,一般都指定一个指都指定一个指针变量指向量指向该文件,也就是文件,也就是建立起指建立起指针变量与文件之量与文件之间的的联系,系,这样就可以通就可以通过该指指针变量量对文件文件进行行读写写所所谓“关关闭”是指撤是指撤销文
17、件信息区和文件文件信息区和文件缓冲区冲区 29.10.2.1 用用fopen函数打开数据文件函数打开数据文件fopen函数的函数的调用方式用方式为:fopen(文件名文件名,使用文件方式使用文件方式);例如:例如:fopen(“a1”,”r”);u表示要打开名表示要打开名为“a1”的文件,使用文件方的文件,使用文件方式式为“读入入”ufopen函数的返回函数的返回值是指向是指向a1文件的指文件的指针30.10.2.1 用用fopen函数打开数据文件函数打开数据文件通常将通常将fopen函数的返回函数的返回值赋给一个指向一个指向文件的指文件的指针变量。如:量。如:FILE*fp;fp=fopen
18、(“a1”,”r”);ufp和文件和文件a1相相联系,系,fp指向了指向了a1文件文件31.10.2.1 用用fopen函数打开数据文件函数打开数据文件在打开一个文件在打开一个文件时,通知,通知编译系系统以下以下3个信息:个信息:需要需要访问的文件的名字的文件的名字使用文件的方式(使用文件的方式(“读”还是是“写写”等)等)让哪一个指哪一个指针变量指向被打开的文件量指向被打开的文件使用文件方式使用文件方式参参见教材教材表表10.1。32.说明:明:(1)用用“r”方式打开的文件只能用于向方式打开的文件只能用于向计算机算机输入而不能用作向入而不能用作向该文件文件输出数据,而且出数据,而且该文件文
19、件应该已已经存在,并存有数据,存在,并存有数据,这样程序程序才能从文件中才能从文件中读数据。数据。u不能用不能用“r”方式打开一个并不存在的文件,方式打开一个并不存在的文件,否否则出出错。33.说明:明:(2)用用“w”方式打开的文件只能用于向方式打开的文件只能用于向该文件文件写数据(即写数据(即输出文件),而不能用来向出文件),而不能用来向计算算机机输入。入。u如果原来不存在如果原来不存在该文件,文件,则在打开文件前新在打开文件前新建立一个以指定的名字命名的文件。建立一个以指定的名字命名的文件。u如果原来已存在一个以如果原来已存在一个以该文件名命名的文件,文件名命名的文件,则在打开文件前先将
20、在打开文件前先将该文件文件删去,然后重新去,然后重新建立一个新文件。建立一个新文件。34.说明:明:(3)如果希望向文件末尾添加新的数据(不希如果希望向文件末尾添加新的数据(不希望望删除原有数据),除原有数据),则应该用用“a”方式打开方式打开u但此但此时应保保证该文件已存在;否文件已存在;否则将得到出将得到出错信息。信息。u打开文件打开文件时,文件,文件读写写标记移到文件末尾移到文件末尾35.说明:明:(4)用用r+、w+、a+方式打开的文件既可以方式打开的文件既可以用来用来输入数据,也可以用来入数据,也可以用来输出数据。出数据。u用用r+方式方式时该文件文件应该已已经存在。存在。u用用w+
21、方式方式则新建立一个文件,先向此文件新建立一个文件,先向此文件写数据,然后可以写数据,然后可以读此文件中的数据。此文件中的数据。u用用a+方式打开的文件,原来的文件不被方式打开的文件,原来的文件不被删去,去,文件文件读写位置写位置标记移到文件末尾,可以添加,移到文件末尾,可以添加,也可以也可以读。36.说明:明:(5)如果打开如果打开失失败,fopen函数将会函数将会带回一个回一个出出错信息。信息。fopen函数将函数将带回一个空指回一个空指针值NULL常用下面的方法打开一个文件:常用下面的方法打开一个文件:if(fp=fopen(“file1”,r)=NULL)printf(“cannot
22、open this filen”);exit(0);终止正在止正在执行的程序行的程序37.说明:明:(6)C标准建准建议用表用表10.1列出的文件使用方式列出的文件使用方式打开文本文件或二打开文本文件或二进制文件,但目前使用的制文件,但目前使用的有些有些C编译系系统可能不完全提供所有可能不完全提供所有这些功能些功能38.说明:明:(7)计算机算机输从从ASCII文件文件读入字符入字符时,遇到,遇到回回车换行符,系行符,系统把它把它转换为一个一个换行符,行符,在在输出出时把把换行符行符转换成成为回回车和和换行两个行两个字符。在用二字符。在用二进制文件制文件时,不,不进行行这种种转换,在内存中的数
23、据形式与在内存中的数据形式与输出到外部文件中的出到外部文件中的数据形式完全一致,一一数据形式完全一致,一一对应。39.说明:明:(8)程序中可以使用程序中可以使用3个个标准的流文件准的流文件:标准准输入流、入流、标准准输出流、出流、标准出准出错输出流。出流。u系系统已已对这3个文件指定了与个文件指定了与终端的端的对应关系关系u标准准输入流是从入流是从终端的端的输入入u标准准输出流是向出流是向终端的端的输出出u标准出准出错输出流是当程序出出流是当程序出错时将出将出错信息信息发送到送到终端端40.程序开始运行程序开始运行时时系系统统自自动动打开打开这这3个个标标准准流文件。因此,程序流文件。因此,
24、程序编编写者不需要在程序写者不需要在程序中用中用fopen函数打开它函数打开它们们。所以以前我。所以以前我们们用到的从用到的从终终端端输输入或入或输输出到出到终终端都不需端都不需要打开要打开终终端文件。端文件。41.10.2.2 用用fclose函数关函数关闭数据文件数据文件关关闭文件用文件用fclose函数。函数。fclose函数函数调用的一般形式用的一般形式为fclose(文件指文件指针);例如:例如:fclose (fp);如果不关如果不关闭文件将会文件将会丢失失数据。数据。42.10.3 顺序序读写数据文件写数据文件在在顺顺序写序写时时,先写入的数据存放在文件中,先写入的数据存放在文件
25、中前面,后写入的数据存放在文件中后面前面,后写入的数据存放在文件中后面在在顺顺序序读时读时,先,先读读文件中前面的数据,后文件中前面的数据,后读读文件中后面的数据文件中后面的数据对顺对顺序序读读写来写来说说,对对文件文件读读写数据的写数据的顺顺序序和数据在文件中的物理和数据在文件中的物理顺顺序是一致的序是一致的 顺顺序序读读写需要用写需要用库库函数函数实现实现43.10.3 顺序序读写数据文件写数据文件10.3.1 怎怎样向文件向文件读写字符写字符10.3.2 怎怎样向文件向文件读写一个字符串写一个字符串10.3.3 用格式化的方式用格式化的方式读写文写文件件10.3.4 用二用二进制方式向文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 输入输出 PPT 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。