对文件的输入输出.ppt
《对文件的输入输出.ppt》由会员分享,可在线阅读,更多相关《对文件的输入输出.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、对文件的输入输出 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望示例:向文件示例:向文件示例:向文件示例:向文件data1.datdata1.dat中写中写中写中写入字符入字符入字符入字符“Hello!”“Hello!”。#include#include void main()FILE*fp;char*s=Hello!;fp=fopen(“data1.dat,w);fputs(s,fp);fclose(fp);文件指针文件指针写方式写方式打开文件打开文件写入文件写
2、入文件示例:读出文件示例:读出文件示例:读出文件示例:读出文件data1.datdata1.dat中中中中的内容的内容的内容的内容#include#include void main()FILE*fp;char s20;fp=fopen(data1.dat,r);fgets(s,20,fp);printf(%sn,s);fclose(fp);文件指针文件指针读方式读方式打开文件打开文件读出文件读出文件内容内容10.1.1 什么是文件什么是文件“文件文件”指存储在外部介质上数据的集合指存储在外部介质上数据的集合10.1.1 什么是文件什么是文件文件有不同的类型,在程序设计中,主要文件有不同的类型
3、,在程序设计中,主要用到两种文件:用到两种文件:(1)程序文件程序文件。包括。包括源程序文件源程序文件(.c)、可执行文可执行文件件(后缀为后缀为.exe)等。这种文件的内容是程序等。这种文件的内容是程序代码。代码。(2)数据文件数据文件。文件的内容不是程序,而是供程。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中序运行时读写的数据,如在程序运行过程中输出到磁盘的数据,或在程序运行过程中供输出到磁盘的数据,或在程序运行过程中供读入的数据。读入的数据。10.1.2 文件名文件名文件路径表示文件在外部存储设备中的位文件路径表示文件在外部存储设备中的位置。如:置。如:D:CCte
4、mpfile1.datu表示表示file1.dat文件存放在文件存放在D盘中的盘中的CC目录下目录下的的temp子目录下面子目录下面文件路径文件路径文件名主干文件名主干文件后缀文件后缀10.1.2 文件名文件名文件路径表示文件在外部存储设备中的位文件路径表示文件在外部存储设备中的位置。如:置。如:D:CCtempfile1.datu表示表示file1.dat文件存放在文件存放在D盘中的盘中的CC目录下目录下的的temp子目录下面子目录下面文件名文件名10.1.2 文件名文件名文件路径表示文件在外部存储设备中的位文件路径表示文件在外部存储设备中的位置。如:置。如:D:CCtempfile1.da
5、tu表示表示file1.dat文件存放在文件存放在D盘中的盘中的CC目录下目录下的的temp子目录下面子目录下面命名规则遵循标命名规则遵循标识符的命名规则识符的命名规则10.1.2 文件名文件名文件路径表示文件在外部存储设备中的位文件路径表示文件在外部存储设备中的位置。如:置。如:D:CCtempfile1.datu表示表示file1.dat文件存放在文件存放在D盘中的盘中的CC目录下目录下的的temp子目录下面子目录下面一般不超过一般不超过3个字母个字母(doc、txt、dat、c、cpp、obj、exe、ppt、bmp等)等)10.1.3 文件的分类文件的分类根据数据的组织形式,数据文件可
6、分为根据数据的组织形式,数据文件可分为ASCII文件文件和和二进制文件二进制文件。uASCII文件又称文本文件,每一个字节放一文件又称文本文件,每一个字节放一个字符的个字符的ASCII代码代码10.1.4 文件缓冲区文件缓冲区ANSI C标准采用标准采用“缓冲文件系统缓冲文件系统”处理处理数据文件数据文件所谓所谓缓冲文件系统缓冲文件系统是指系统自动地在内存是指系统自动地在内存区为程序中每一个正在使用的文件开辟一区为程序中每一个正在使用的文件开辟一个文件缓冲区个文件缓冲区10.1.4 文件缓冲区文件缓冲区程序数据区程序数据区输出文件缓冲区输出文件缓冲区输入文件缓冲区输入文件缓冲区磁盘磁盘从内存向
7、磁盘输出数据从内存向磁盘输出数据装满缓冲区装满缓冲区10.1.4 文件缓冲区文件缓冲区程序数据区程序数据区输出文件缓冲区输出文件缓冲区输入文件缓冲区输入文件缓冲区磁盘磁盘从磁盘向计算机读入数据从磁盘向计算机读入数据充满缓冲区充满缓冲区10.1.5 文件类型指针文件类型指针缓冲文件系统中,关键的概念是缓冲文件系统中,关键的概念是“文件类文件类型指针型指针”,简称,简称“文件指针文件指针”u文件信息是保存在一个结构体变量中的。该结文件信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名为构体类型是由系统声明的,取名为FILE。10.1.5 文件类型指针文件类型指针声明声明FILE结构体
8、类型的信息包含在头文件结构体类型的信息包含在头文件“stdio.h”中中一般一般设置一个指向设置一个指向FILE类型变量的指针变类型变量的指针变量,然后通过它来引用这些量,然后通过它来引用这些FILE类型变量类型变量10.1.5 文件类型指针文件类型指针FILE*fp1,*fp2,*fp3;文件文件f1的的文件信息区文件信息区fp1文件文件f2的的文件信息区文件信息区fp2文件文件f3的的文件信息区文件信息区fp310.2 打开与关闭文件打开与关闭文件10.2.1 用用fopen函数打开数据文件函数打开数据文件10.2.2 用用fclose函数关闭数据文件函数关闭数据文件10.2.1 用用fo
9、pen函数打开数据文件函数打开数据文件对文件读写之前应该对文件读写之前应该“打开打开”该文件,在该文件,在使用结束之后应使用结束之后应“关闭关闭”该文件。该文件。所谓所谓“打开打开”是指为文件建立相应的信息是指为文件建立相应的信息区区(用来存放有关文件的信息用来存放有关文件的信息)和文件缓冲和文件缓冲区区(用来暂时存放输入输出的数据用来暂时存放输入输出的数据)。10.2.1 用用fopen函数打开数据文件函数打开数据文件在编写程序时,在打开文件的同时,一般在编写程序时,在打开文件的同时,一般都指定一个指针变量指向该文件,也就是都指定一个指针变量指向该文件,也就是建立起指针变量与文件之间的联系,
10、这样建立起指针变量与文件之间的联系,这样就可以通过该指针变量对文件进行读写就可以通过该指针变量对文件进行读写所谓所谓“关闭关闭”是指撤销文件信息区和文件是指撤销文件信息区和文件缓冲区缓冲区 10.2.1 用用fopen函数打开数据文件函数打开数据文件fopen函数的调用方式为:函数的调用方式为:FILE*fp;fp=fopen(“文件名文件名”,”使用文件方式使用文件方式”);例如:例如:FILE*fp;fopen(“a1”,”r”);uFopen()的返回值是指向文件的指针的返回值是指向文件的指针fp.”r”或”w”10.2.1 用用fopen函数打开数据文件函数打开数据文件在打开一个文件时
11、,通知编译系统以下在打开一个文件时,通知编译系统以下3个信息:个信息:需要访问的文件的名字需要访问的文件的名字使用文件的方式(使用文件的方式(“读读”还是还是“写写”等)等)让哪一个指针变量指向被打开的文件让哪一个指针变量指向被打开的文件使用文件方式使用文件方式参参见见教材教材表表10.1。说明:说明:(1)用用“r”方式打开的文件只能用于向计算机方式打开的文件只能用于向计算机输入而不能用作向该文件输出数据,而且该输入而不能用作向该文件输出数据,而且该文件应该已经存在,并存有数据,这样程序文件应该已经存在,并存有数据,这样程序才能从文件中读数据。才能从文件中读数据。u不能用不能用“r”方式打开
12、一个并不存在的文件,方式打开一个并不存在的文件,否则出错。否则出错。说明:说明:(2)用用“w”方式打开的文件只能用于向该文件方式打开的文件只能用于向该文件写数据(即输出文件),而不能用来向计算写数据(即输出文件),而不能用来向计算机输入。机输入。u如果原来不存在该文件,则在打开文件前新如果原来不存在该文件,则在打开文件前新建立一个以指定的名字命名的文件。建立一个以指定的名字命名的文件。u如果原来已存在一个以该文件名命名的文件,如果原来已存在一个以该文件名命名的文件,则在打开文件前先将该文件删去,然后重新则在打开文件前先将该文件删去,然后重新建立一个新文件。建立一个新文件。说明:说明:(3)如
13、果希望向文件末尾添加新的数据(不希如果希望向文件末尾添加新的数据(不希望删除原有数据),则应该用望删除原有数据),则应该用“a”方式打开方式打开u但此时应保证该文件已存在;否则将得到出但此时应保证该文件已存在;否则将得到出错信息。错信息。u打开文件时,文件读写标记移到文件末尾打开文件时,文件读写标记移到文件末尾说明:说明:(4)用用r+、w+、a+方式打开的文件既可以方式打开的文件既可以用来输入数据,也可以用来输出数据。用来输入数据,也可以用来输出数据。u用用r+方式时该文件应该已经存在。方式时该文件应该已经存在。u用用w+方式则新建立一个文件,先向此文件方式则新建立一个文件,先向此文件写数据
14、,然后可以读此文件中的数据。写数据,然后可以读此文件中的数据。u用用a+方式打开的文件,原来的文件不被删去,方式打开的文件,原来的文件不被删去,文件读写位置标记移到文件末尾,可以添加,文件读写位置标记移到文件末尾,可以添加,也可以读。也可以读。说明:说明:(5)如果打开如果打开失败失败,fopen函数将会带回一个函数将会带回一个出错信息。出错信息。fopen函数将带回一个空指针值函数将带回一个空指针值NULL常用下面的方法打开一个文件:常用下面的方法打开一个文件:if(fp=fopen(“file1”,r)=NULL)printf(“cannot open this filen”);exit(
15、0);终止正在执行的程序终止正在执行的程序10.2.2 用用fclose函数关闭数据文件函数关闭数据文件关闭文件用关闭文件用fclose函数。函数。fclose函数调函数调用的一般形式为用的一般形式为fclose(文件指针文件指针);例如:例如:fclose (fp);如果不关闭文件将会如果不关闭文件将会丢失丢失数据。数据。10.3.1 怎样向文件读写字符怎样向文件读写字符函数名调用形式功能返回值fgetcfgetc(fp)从fp指向的文件读入一个字符读成功,带回所读的字符,失败则返回文件结束标志(即-1)fputcfputc(ch,fp)把字符ch写到文件指针变量fp所指向的文件中写成功,返
16、回值就是输出的字符;输出失败,则返回(即-1)读写一个字符的函数读写一个字符的函数 例例10.1 从键盘输入一些字符,逐个把它从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个们送到磁盘上去,直到用户输入一个“”为止。为止。解题思路:用解题思路:用fgetc函数从键盘逐个输入函数从键盘逐个输入字符,然后用字符,然后用fputc函数写到磁盘文件即函数写到磁盘文件即可。可。#include#include int main()FILE*fp;char ch,filename10;printf(请输入所用的文件名:请输入所用的文件名:);scanf(%s,filename);if(fp=f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 输入输出
限制150内