- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 文件1
主讲老师:刘志强 第九章 文件 主要内容: §9.1 文件的概念 §9.2 文件类型指针 §9.3 文件的打开和关闭 §9.4 文件的读写 §9.5 文件的定位 §9.1 文件的概念 文件:存储在外部介质(如:软盘、硬盘、光盘等)上的数据的集合。文件又是以文件名作为标识符。 文件的意义 数据的输入和输出:在计算机中,数据的输入和输出都是相对内存而言。 输入:将数据从输入设备或磁盘文件读入内存称为输入 输出从内存写到输出设备或磁盘文件称为输出 文件的组织形式 两种组织形式 ASCII形式(文本形式):每一个字节放一个ASCII代码,代表一个字符 二进制形式:把数据按其在内存中的存储形式原样输出到磁盘上存放 §9.2 指向文件的指针 指向文件的指针变量的定义: FILE *变量名; 如:FILE *fp; 则定义了指针变量fp是一个指向文件的指针。 注意: 类型FILE定义在头文件stdio.h中,因此使用FILE须 #include stdio.h §9.3 文件的打开和关闭 文件使用前,应先将文件打开到内存中的文件缓冲区,使用之后应将文件关闭,即把文件缓冲区中的数据回存到文件,然后释放文件缓冲区。 打开文件的函数:fopen()函数关闭文件的函数:fclose()函数 一、文件的打开 方法: FILE *fp;fp=fopen(文件名,打开方式); 功能:fopen()函数将指定文件以指定方式打开在文件缓冲区,返回缓冲区的首地址并赋给fp,于是fp指向所打开的文件。 文件的打开 文件的打开 文件中位置指针的概念: 在文件内部有一个位置指针指向文件的当前读写位置。以非“追加”方式打开文件时,位置指针指向文件首,并随着对文件的读写而自动移动指向下一个读写位置。 文件的打开 二、文件的关闭 方法: fclose(文件指针);例如:fclose(fp);功能:将指针fp指向的文件关闭。所谓文件关闭就是文件指针与文件的指向关系中断。 §9.4 文件的读写 文件的读写步骤: 文件的读写 文件的读写函数: fgetc( )和fputc( ):读写一个字符 fgets( )和fputs( ):读写一个字符串 fscanf( )和fprintf( ):格式化读写一组数据 fread( )和fwrite( ):读写一个数据块 用于读写文本/二进制文件中的一个字符。 1、读字符函数:fgetc(文件指针) 功能: 从“文件指针”所指文件中读出一个字符 字符读写函数 ch=fgetc(stdin); 等价于:ch=getchar( ); fputc(ch,stdout); 等价于:putchar(ch); 例1 从键盘上输入一行字符写入data1.dat中,遇#结束 #include stdio.h void main( ) {FILE *fp; char ch; fp=fopen(data1.dat,w); ch=getchar( ); while(ch!=#) {fputc(ch,fp); putchar(ch); ch=getchar( ); } fclose(fp); } 例2 将一个文件中的信息复制到另一个文件中 #include “stdio.h” void main( ) { FILE * in,*out; char infile[10],outfile[10]; printf(输入原有文件名:\n); scanf(%s, infile); printf(输入新复制的文件名:\n ); scanf(%s, outfile); in=fopen(infile, r); ? out=fopen(outfile, w); ? while( !feof(in) ) fputc(fgetc(in),out); fclose(in);? fclose(out); } 例2 将一个文件中的信息复制到另一个文件中(另解) #include “stdio.h” void main( ) { FILE * in,*out; char ch,infile[10],outfile[10]; printf(输入原有文件名:\n); scanf(%s, infile); printf(输入新复制的文件名:\n ); scanf(%s, outfile); in=fopen(infile, r); ? out=fopen(outfile, w); ? while( (ch=fgetc(in))!=EOF ) fputc(ch,out
文档评论(0)