资源描述:
《第六章 磁盘数据存储ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章磁盘数据存储第六章磁盘数据存储6.1将数据写入文件6.2文件读写分类函数6.3文件定位函数6.1将数据写入文件在前几章中我们学习的数据类型,可以用来存储相关数据,但这种存储是暂时的,当程序结束运行,这些数据也就消失了。为了长期保存这些数据,我们可以将它们存储到硬盘上,如果需要使用这些数据,再从硬盘上将它们读出来,这样数据就可以重复使用了。在这一章我们要学习的主要内容是:如何将数据写入文件如何从文件中读取数据使用文件读取数据的四个必要步骤:定义文件指针变量,文件类型FILE是在stdio.h头文件中
2、声明的,可以直接使用打开文件,并判断是否能正确打开文件,如果打开文件失败,则退出程序向文件写入数据,或从文件读取数据,这是最重要的文件操作步骤关闭文件文件的概念文件是根据特定目的而收集在一起并存储在外部介质上的有关数据的集合。C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为文本文件和二进制文件两类。文本文件(ASCII文件)每个字节存放一个字符(即其ASCII码)优点:便于对字符进行处理,可以直接输出字符形式缺点:占用存储空间较多,对于数值型数
3、据,其二进制形式与ASCII码形式转换需要时间二进制文件数据按其在内存中的存储形式存放在磁盘上优点:节省空间,输入输出速度快缺点:不能直接输出字符形式文件类型指针每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文件状态及文件当前位置等)。这些信息是保存在一个结构体变量,其结构体类型由系统定义,类型名为FILE(注意:必须是大写),存放在stdio.h头文件中。定义形式:FILE*指针变量名;说明只有通过文件指针变量才能调用相应的文件有n个文件就要定义n个文件指针变量,分别对应
4、各个文件FILE必须大写打开文件函数fopen函数格式:fopen(文件名,文件使用方式);fopen函数有返回值,返回值是一个地址,即用来存放文件信息的内存区起始地址,使用时应将返回值赋给一个文件指针变量。需要打开的文件名使用文件的方式(读或写)让哪个指针变量指向被打开的文件例:FILE*fp;fp=fopen(“file1.txt”,“r”);文件的打开方式打开方式含义说明r只读为输入打开一个已存在的文本文件w只写为输出打开一个文本文件a追加为追加打开一个已存在的文本文件rb只读为输入打开一个已存在
5、的二进制文件wb只写为输出打开一个二进制文件r+读写为既读又写打开一个已存在文本文件w+读写为既读又写新建一个的文本文件a+读写为既读又写打开一个已存在的文本文件,文件指针移至文件末尾关闭文件函数fclose函数格式:fclose(文件指针变量);例:fclose(fp);作用:将文件指针变量所指向的文件关闭,使文件指针变量不再指向该文件,以后不能通过该文件指针变量再对该文件进行任何操作。重要性:写文件时,在“输出缓冲区”装满后,才将数据一起写入文件。当程序结束时,缓冲区可能还未满,如未关闭文件就结束程
6、序,则缓冲区数据不能写入文件,会丢失数据。使用fclose函数,不论缓冲区是否已满,都会将缓冲区的数据写入文件,再关闭文件。#include#includevoidmain(){charch='A';FILE*fp;fp=fopen("letter.dat","w");if(fp==NULL){printf("Openingfileerror");exit(0);}for(ch='A';ch<='Z';ch++)fputc(ch,fp);fputc('',f
7、p);fclose(fp);}6.2文件读写分类函数单字符的写入/读取函数写入函数:fputc函数读取函数:fgetc函数fputc函数格式:fputc(字符常量或字符变量,文件指针变量);作用:将一个字符写到文件指针所指向的文件中去函数返回值:成功时返回该字符,失败时返回EOF(-1)说明:写入一个字符后,文件位置指针将自动指向下一个字节例:fputc(‘s’,fp);fgetc函数格式:字符变量=fgetc(文件指针变量);作用:从文件指针变量所指向的文件中读一个字符,并将它赋给程序中的一个字符变量
8、函数返回值:成功时返回该字符,失败时返回EOF说明:读取一个字符后,文件位置指针将自动指向下一个字节例:ch=fgetc(fp);注意:EOF实际是一个符号常量,其值为–1。一般用EOF作为文本文件的文件结束符,用fgetc函数时,最后读到文件结束时将返回EOF。字符串的读取/写入函数1、读取函数:fgets函数格式:fgets(str,n,fp);说明:str:字符数组名;n:整数值;fp:文件指针变量作用:从fp指向的文件中读(n-1)