第六章 磁盘数据存储.ppt_第1页
第六章 磁盘数据存储.ppt_第2页
第六章 磁盘数据存储.ppt_第3页
第六章 磁盘数据存储.ppt_第4页
第六章 磁盘数据存储.ppt_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 磁盘数据存储,第六章 磁盘数据存储,6.1 将数据写入文件 6.2 文件读写分类函数 6.3 文件定位函数,6.1 将数据写入文件,在前几章中我们学习的数据类型,可以用来存储相关数据, 但这种存储是暂时的,当程序结束运行,这些数据也就消失了。为了长期保存这些数据,我们可以将它们存储到硬盘上,如果需要使用这些数据,再从硬盘上将它们读出来,这样数据就可以重复使用了。 在这一章我们要学习的主要内容是: 如何将数据写入文件 如何从文件中读取数据,使用文件读取数据的四个必要步骤: 定义文件指针变量,文件类型FILE是在stdio.h头文件中声明的,可以直接使用 打开文件,并判断是否能正确打开文件

2、,如果打开文件失败,则退出程序 向文件写入数据,或从文件读取数据,这是最重要的文件操作步骤 关闭文件,文件的概念 文件是根据特定目的而收集在一起并存储在外部介质上的有关数据的集合。 C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为文本文件和二进制文件两类。 文本文件(ASCII文件) 每个字节存放一个字符(即其ASCII码) 优点:便于对字符进行处理,可以直接输出字符形式 缺点:占用存储空间较多,对于数值型数据,其二进制形式与ASCII码形式转换需要时间 二进制文件 数据按其在内存中的存储形式存放在磁盘上 优点:节省空间 , 输入输出

3、速度快 缺点:不能直接输出字符形式,文件类型指针 每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文件状态及文件当前位置等)。这些信息是保存在一个结构体变量,其结构体类型由系统定义,类型名为 FILE (注意:必须是大写),存放在stdio.h头文件中。 定义形式: FILE *指针变量名; 说明 只有通过文件指针变量才能调用相应的文件 有n个文件就要定义n个文件指针变量, 分别对应各个文件 FILE必须大写,打开文件函数 fopen函数 格式: fopen( 文件名, 文件使用方式); fopen函数有返回值, 返回值是一个地址,即用来存放文件信息的内存区起始地址

4、,使用时应将返回值赋给一个文件指针变量。,需要打开的文件名,使用文件的方式(读或写),让哪个指针变量 指向被打开的文件,例: FILE *fp ; fp = fopen ( “file1.txt” , “r” ) ;,文件的打开方式,关闭文件函数 fclose函数 格式: fclose ( 文件指针变量 ) ; 例: fclose( fp ) ; 作用:将文件指针变量所指向的文件关闭,使文件指针变量不再指向该文件,以后不能通过该文件指针变量再对该文件进行任何操作。 重要性:写文件时,在“输出缓冲区”装满后,才将数据一起写入文件。当程序结束时,缓冲区可能还未满,如未关闭文件就结束程序,则缓冲区数

5、据不能写入文件,会丢失数据。使用fclose函数,不论缓冲区是否已满,都会将缓冲区的数据写入文件,再关闭文件。,#include #include void main() char ch=A; FILE *fp; fp=fopen(letter.dat,w); if(fp=NULL) printf(n Opening file error); exit(0); for(ch=A;ch=Z;ch+) fputc(ch,fp); fputc(n,fp); fclose(fp); ,6.2 文件读写分类函数,单字符的写入/读取函数 写入函数:fputc函数 读取函数:fgetc函数 fputc函数

6、格式:fputc ( 字符常量或字符变量, 文件指针变量 ) ; 作用:将一个字符写到文件指针所指向的文件中去 函数返回值:成功时返回该字符, 失败时返回 EOF(-1) 说明:写入一个字符后, 文件位置指针将自动指向下一个字节 例: fputc( s , fp ) ;,fgetc函数 格式: 字符变量 = fgetc(文件指针变量); 作用: 从文件指针变量所指向的文件中读一个字符, 并将它赋给程序中的一个字符变量 函数返回值: 成功时返回该字符 , 失败时返回 EOF 说明: 读取一个字符后, 文件位置指针将自动指向下一个字节 例: ch = fgetc ( fp ) ;,注意: EOF

7、实际是一个符号常量,其值为 1。一般用EOF作为文本文件的文件结束符,用fgetc函数时,最后读到文件结束时将返回 EOF。,字符串的读取/写入函数 1、读取函数:fgets函数 格式: fgets( str , n , fp ); 说明: str: 字符数组名; n: 整数值; fp: 文件指针变量 作用: 从fp指向的文件中读(n-1)个字符, 将它们存放到str数组中,,并在其后自动加一个0,如果读入(n-1)个字符前遇到换行符或文件结束符EOF, 则结束读入 函数返回值: 成功返回str数组的首地址 , 失败返回 NULL 2、写入函数:fputs函数 格式:fputs( str ,

8、fp ); 说明:str:字符串常量或字符数组名或字符指针变量; fp:文件指针变量 作用:将str字符串写到fp所指向的文件中, 但0不写入文件 函数返回值:成功返回0,出错返回非0值,格式化读写函数 写:fprintf (文件指针变量, 格式字符串, 输出表列); 读:fscanf (文件指针变量, 格式字符串, 输入表列); 说明: fprintf和fscanf函数的使用方法与printf和scanf函数类似,只是多了一个参数-文件指针变量,该参数用来指出向哪个文件写数据,从哪个文件读数据 数据块读写函数 写:fwrite ( buffer, size, count, fp ); 读:f

9、read ( buffer, size, count, fp ); 说明: buffer:是一个地址。对于fread, buffer是从文件中读取的数据要存放的存储区的首地址;对于fwrite, buffer是向文件写入数据时存储变量的地址 size:要读写数据所占用的字节数 count:要读写数据项的个数 fp:文件指针变量,6.3 文件定位函数,文件的读写位置指针 文件中有一个读写位置指针, 指向当前读或写的位置。 文件顺序读写 从文件开头依次读写数据直到文件末尾。 文件位置指针对当前所指向的数据进行读或写操作后 , 位置指针会自动指向下一个数据项。如果能控制位置指针的指向, 就能实现随机读写。 文件随机读写 从文件的指定位置读写数据。,位置指针复位函数rewind (无返回值的函数) 格式: rewind(文件指针变量); 作用: 将文件位置指针重新返回到文件开头 文件定位函数fseek 格式: fseek (文件指针变量, 位移量, 起始点); 位移量: 是一个 long int 型数据, 表示以“起始点”为基点向前或向后要移动的字节数, 正数表示向前移动,负数表示向后移动 起始点: 表示从什么位置为基准移动, 用数字代表 SEEK_SET (0) - 文件开始处 SEEK_CUR (1) - 文件位置指针的当前指向 SEEK_END (2) - 文件末尾

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论