c语言课件 第16章 文件.ppt_第1页
c语言课件 第16章 文件.ppt_第2页
c语言课件 第16章 文件.ppt_第3页
c语言课件 第16章 文件.ppt_第4页
c语言课件 第16章 文件.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、、第16章、文件和流、第16章文件一、内容提要c语言文件指针打开文件关闭文件调用getc(fgetc )和putc(fputc ) 函数输入输出判定文件使用结束函数feof fscanf函数和fprintf函数fgets函数和fputs函数fread函数和fwrite函数文件定位函数文件,二、重点和难点1、c文件的分类2、文件的打开和关闭3、 二进制文件和文本文件的操作函数,16.1基本概念,文件保存程序执行的结果文件,为了使程序能够操作大量的数据需要文件支持, 如果用字符代码存储了操作系统在一组相关数据集合c打开该文件之后为该文件创建的缓冲区或流、文件结束标志、0 1 2 3 4 5 6、n

2、-2、EOF整数1234,则该文件可以包含4个字节二进制文件以计算机内的存储格式直接存储在文件中。 因为不需要转换数据,所以可以提高对文件的访问速度。 定义文件类型指针变量的一般格式。 FILE *指针变量名FILE实际上是结构类型名,在stdio.h中定义。 例如:文件*fp2、*fp2; 必须在16.2文件结构中处理文件,打开文件,在使用文件之前打开文件。 格式为fopen (文件名、文件的使用方法); 此函数返回指向FILE类型的指针。 例如:文件* FP; fp=fopen(“file_1.c”、“r”) :如果调用成功,fp将指向file_1,否则返回NULL,因此测试以确保正确使用

3、文件。 if (文件1.c,r )=空)打印机(0); 为了显示文件的路径,最常见的文件的使用方法及其含义,如“使用”e:c mm.txt,表16-1,1,“r”:打开文本文件进行读取。 (如果不存在则出错) 2,“rb”:打开二进制文件进行读取。 3、“w”:打开文本文件进行写作。 (如果不存在,则创建新文件,反之从文件的开头写入,复盖原始内容) 4,“wb”:打开二进制文件进行写入。 5、“a”:打开文本文件,在文件后面添加数据。 (如果不存在,则在原始文件之后添加) 6,“ab”:打开二进制文件以在文件之后添加数据。 7、“r ”:打开文本文件进行读写。 (对于读写,从头开始写入数据时,

4、新数据仅复盖所占空间,之后不变)、8、“rb ”:打开二进制文件进行读写。 但是,在读写时,可以使用位置函数设定读写的开始位置。 9、“w ”:可以首先创建新文件,进行写入,然后再从头读取。 (如果文件存在,则原始内容全部消失) 10、“wb ”:的功能与“w”相同。 但是,在以后的读取/写入时,可以用位置函数设定读取和写入的开始位置。 11、“a ”:功能与“a”相同。 但是,如果在文件的末尾添加了新数据,则可以从头开始阅读。 12、“ab ”:的功能与“a”相同。 但是,在文件的末尾添加新数据后,可以通过位置函数设定开始读取的开始位置。 最常见的文件用法及其含义是:关闭文件,在文件读取/写

5、入完成后使用fclose函数关闭文件。 格式为fclose (文件指针),例如fclose(fp ); 成功关闭,函数返回0。 否则返回0以外的值。 1、对于文本文件的操作,调用getc(fgetc )和putc(fputc )函数进行输入和输出,1、调用putc (或fputc )函数向文件输出文字的调用形式为: putc(ch,fp )。 功能部向文件指针fp指向的文件写入文字ch。如果输出成功,putc函数返回输出字符;否则,返回EOF值。 EOF是在stdio.h中定义的符号常数,其值等于-1。 fputc的功能和调用形式与putc完全相同。 例1 :将从键盘输入的文本原样输出到名为f

6、ile_1.txt的文件,作为键盘输入结束标志使用字符。 include # includevoidmain ()文件* FP输出; 查尔斯; 打印机(空)打印机(打印机)!打印机(文件1.txt,w )! n ); exit(0); ch=getchar (); 魔法少女=) fputc(ch、fpout ); ch=getchar (); 关闭(输出); 2 .从文件中,调用getc (或fgetc )函数输入字符。 调用形式为ch=getc(fp ); 功能从用pf指定的文件中读出1个字符,将其作为函数值返回。 如果发生错误或文件读取结束,则返回文件结束标志EOF. fgetc和getc

7、函数的功能与调用格式完全相同。 /将现有光盘上的file_1.txt文本文件的内容直接输出到终端画面。 include # includevoidmain ()文件* fpin; 查尔斯; 打印机(空)打印机(打印机文件)。请参见. n ); exit(0); ch=fgetc (菲宾); 魔法少女=EOF) putchar(ch ); ch=fgetc (菲宾); fclose(fpin ); 文件结束函数fEOF、eof可以作为文本文件的结束标志,但不能作为二进制文件的结束符。 feof函数可以同时确定二进制文件和文本文件。 文件结束时,函数feof的值为1,否则为0。 调用格式: feo

8、f (文件指针)示例:创建将一个文本文件(源文件)复制到另一个文件(目标文件)的程序,然后在命令行中输入源文件名和目标文件名。 指令形式为可执行程序名源文件名的目标文件名、#include void filecopy(FILE*,FILE * ); 电话主机(英格兰、卡尔*阿拉gv )文件* fpin、*fpout。 接口(argc=3)接口(fpin=fopen ); FP输出=输出(argv 2,“w”) : fclose(fpin ); 关闭(输出); else if (argc3)打印机(“超文件名称”! 不要! n”; else printf (“以太网名称”。 不要! n ); 声

9、音文件复制(fpin、FP输出文件) char ch。 ch=getc (菲宾); 威廉(! 分离(fpin ) putc (ch,fpout ); ch=getc (菲宾); fscanf和fprintf函数、1和fscanf函数fscanf只能以格式从文本文件输入,与scanf函数类似,但输入的对象是磁盘上文本文件的数据。 调用形式为fscanf (文件指针、格式控制字符串、输入项目表)例如fscanf(fp,“%d%d”,2,fprintf函数fprintf函数将存储器内的数据转换为与不同格式对应的字符的fprintf函数调用格式为fprintf (文件指针、格式控制字符串、输出项目表)

10、,例如fprintf(fp,“%d %d”,x,y ); 以下语句为fprintf (停止,“%d %d”,x,y ) : 打印机(“% d % d”、x、y ); fgets和fputs函数、1和fgets函数用于从文件读取字符串。 调用格式为fgets(str,n,fp ); 函数功能从fp指向的文件中读取n-1字符,str放入开头地址的空间的系统会自动加0,如果小于n-1字符,则会遇到换行或EOF,结束本次的读取操作,并将str作为函数值返回。 2.fputs函数将fputs函数字符串输出到文件。 函数调用格式包括fputs(str,fp ); 注意:为了便于读取,在输出字符串时不输出字

11、符串的最后0。 请人为地追加“n”等文字。 str可以是字符串常量、指向字符串的指针或存储字符串的数组名称。 输出成功,函数值为0以外,否则为0。 对二进制文件操作fread和fwrite函数,fread和fwrite函数用于读取和写入二进制文件。这些调用格式包括缓冲、大小、计数和fp (缓冲区); 写入(缓冲、大小、计数、fp ); buffer :输入输出的数据块的开头地址size:每个数据块的字节数count:输入输出数据块的个数fp :将文件指针,例如30个学生的数据输出到fp指向的文件。 结构符号8; 浮动MK 5; st pers 30; for (i=0; i30; i ) fw

12、rite (,文件位置函数,*文件指针和文件位置指针的不同。 1.fseek函数fseek函数用于将文件的位置指针移动到指定位置,下一次读取或写入从该位置开始。 函数的调用格式是fseek(fp,offset,origin) fp:文件指针offset:的以字节为单位的移位量,即长整数。 origin:是指定位移量相对于哪个位置的起点。 可以用标识符或数字表示。 中的组合图层性质变更选项。 假设标识符号所表示的开始点SEEK_SET 0文件开始SEEK_END 2文件末尾SEEK_CUR 1文件假设当前位置fp指向二进制文件,则fseek(fp,30L,SEEK_SET )从该文件的开头向后移

13、位30个字节fseek(fp,-10L*sizeof(int ),SEEK_END )表示从文件的末尾起前进了10个sizeof(int ),即前进了20个字节。 对于文本文件,偏移量必须为0。示例: fseek(fp,0L,SEEK_SET )移动到文件的开头。 fseek(fp,0L,SEEK_END )移动到文件的末尾。 2. ftell函数,用于获取文件的当前位置指针的位置。 指定当前位置指针相对于文件开头的字节数。 长t; t=特尔(FP ); 如果函数调用错误,则函数返回-1L。 指定时间(FP,0L,SEEK_END ); t=特尔(FP ); 3.rewind函数卷积函数,调用形式为rewind(fp );

温馨提示

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

评论

0/150

提交评论