第13章 文件的基本操作.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件 §13.1 文件的基本概念 文件有多种分类,如: 按文件的内容区分:源程序,图形文件、音频文件、数据文件等等。 按数据的组织形式分:文本文件、二进制文件 ? C语言可以对文本文件和二进制文件进行读写操作。 §13.2 标准I/O和非标准I/O 一、标准I/O(缓冲文件系统) 每一个文件都会在内存开辟一个“缓冲区”。 缓冲区的作用:临时存放数据,减少对磁盘的读写次数。 二、系统I/O(非缓冲文件系统) 系统不设置缓冲区,由用户设置。 系统I/O又称为低层文件系统。 ? 标准I/O与系统I/O分别采用不同的输入/输出函数 ? 对文件的操作顺序:打开?读或写?关闭。 三、标准I/O的读写函数 1. 读写一个字符: fgetc( ); fputc( ); 2. 读写一个字符串: fgets( ); fputs( ); 3. 格式化读写变量: fscanf( ); fprintf( ); 4. 格式化读写一个记录(块): fread( ); fwrite( ); §13.3 文件类型指针 若要调用文件,系统要求提供以下信息: ? 文件当前的读写位置; ? 与文件对应的内存缓冲区地址; ? 缓冲区中未被处理的字符数; ? 文件的操作方式。 对标准I/O,系统会在内存为每一个文件开辟一个“文件信息区”,存放上面的信息。 特别指出: ? 对文件操作所需的“文件信息”是一结构体变量,且该结构体变量由系统定义 定义形式: typedef struct { ? } FILE; 存放文件信息 ? 用户只需定义指向文件类型的指针变量即可。 如: FILE *fp1, *fp2; §13.4 文件的打开与关闭 一、文件打开 使用fopen( )函数。 调用方式:fopen(文件名,文件操作方式); 返回一个指向该文件的指针或错误标志NULL。 文件操作方式: r ? 以只读方式打开一个文本文件 w ? 以只写方式打开一个文本文件 a ? 以追加方式打开一个文本文件 r+ ? 以读/写方式打开一个文本文件 w+ ? 以读/写方式建立一个新的文本文件 a+ ? 以读/写方式打开一个文本文件 rb ? 以只读方式打开一个二进制文件 wb ? 以只写方式打开一个二进制文件 ab ? 以追加方式打开一个二进制文件 rb+ ? 以读/写方式打开一个二进制文件 wb+ ?以读/写方式建立一个新的二进制文件 ab+ ?以读/写方式打开一个二进制文件 特别说明: 并不是所有的C语言系统都具备以上文件操作方式。 例:#include stdio.h main() { FILE *p; p=fopen(test.txt, r); if (p==NULL) { printf(file open error); exit(0); } printf(file open ok); } 关注的问题: ? 文件“test.txt”所在位置如何? ? 在程序结束之前并没有关闭被打开的文件,文件会不会遭到破坏? ? 文件test.txt的内容是什么? C语言规定:fopen()函数中的文件名可以是当前工作目录(相对路径)下的也可以是指定路径(绝对路径)下的。 如:fopen(c:\\DOS\\config.sys, r); 二、文件关闭 使用fclose( )函数 调用方式:fclose(文件指针变量); 作用:关闭一个已打开的文件(释放文件信息区) 提醒:为防止文件数据丢失,文件使用完毕后必须关闭。(特别是对以写方式打开的文件) 三、文件的读写函数 1. 文件结尾标志: EOF 从已打开的文件中读一个字符: fgetc(文件指针变量) 返回值:字符 注意:文件刚打开时,文件指针指向文件的开始位置。 注意: 例:设在当前目录下有一个名为gh.txt的文件,要求编一程序将该文件中的内容打印在屏幕上。 /*exp15_1.c*/ #includestdio.h main( ) { FILE *fp; fp=fopen(gh.txt, r); char ch; if (fp= =NULL) printf(file open error\n); else while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); } 注意:gh.txt文件必须与该程序的执行文件在同一目录下。 2. 从已打开的文件中读一字符串(读一行字符): fgets(数组名, n 个字符数,文件指针变量); 作用:从文件指针所指的文件中读取一行字符,并将读取的字符放入数组中。 ? 读取的字符包括换行符“\n”或文件结束符“EOF”; ? 读取的字符后自动加上字符串结束符“\0”

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档