C语言程序设计第10章文件处理.ppt





《C语言程序设计第10章文件处理.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第10章文件处理.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 文 件 处 理学习目标1了解文件的基本概念;2理解文件的基本应用;3掌握利用文件管理函数进行文件的打开、读写及关闭等基本操作方法。10.1 10.1 文件的基本概念文件的基本概念文 件ASCII 文件(text文件)二进制文件C对文件的处理方法缓冲文件系统非缓冲文件系统例:整数10000,在内存中占两个字节,输出到磁盘上若以ASCII形式占5个字节:00110001 00110000 00110011 00110000 00110000 若以二进制形式占2个字节:0010011100010000C文件是一个字节流或二进制流。旧的C版本(如Unix系统下使用的C)有两种对文件的处理方法
2、:一种叫“缓冲文件系统”,一种叫“非缓冲文件系统”。缓冲文件系统:系统自动为正在使用的文件在内存开辟缓冲区。非缓冲文件系统:由程序为文件设置缓冲区。缓冲区文件系统读写文件操作示意图缓冲区文件系统读写文件操作示意图程序数据区输出文件缓冲区外存输入文件缓冲区10.2 10.2 文件类型指针文件类型指针 通过文件指针就可对它所指的文件进行各种操作。说明文件指针的一般形式为:FILE*指针变量名;FILE*fp;10.3 10.3 文件的基本操作文件的基本操作10.3.1 10.3.1 文件的打开文件的打开 在打开一个文件时,通知给编译系统以下三个信息:需要打开的文件名,即准备访问的文件的名字;使用文
3、件的方式(读还是写等);让哪一个指针变量指向被打开的文件。打开文件操作由fopen函数来完成。fopen函数的一般调用形式为:文件指针名=fopen(“文件名”,“使用文件方式”);如:FILE*fp;fp=fopen(file1,r);文件使用方式含 义“r”(只读)“w”(只写)“a”(追加)“r+”(读写)“w+”(读写)“a+”(读写)打开用于只读打开用于写打开用于在文本尾写入,文件不存在时则建立打开一个已存在的文件,用于读和写(更新)建立一个新文件,用于写打开用于在文本尾写入,文件不存在则建立(更新)说明:说明:(1)在打开一个文件时,如果出错,fopen函数将返回一个空指针值NUL
4、L。常用下面的程序段打开文件:if(fp=fopen(file1,r)=NULL)printf(cannot open this file!n);exit(0);(2)把文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码。而对二进制文件的读写不存在这种转换。(3)运行一个C程序时,系统会自动打开三个文件:标准输入文件、标准输出文件、标准出错输出。通常情况下,stdin与终端键盘连接,stdout和stderr与终端屏幕连接。10.3.2 10.3.2 文件的关闭文件的关闭fclose函数,一般调用形式是:fclose(文件指针);
5、如:fclose(fp);其中fp是要关闭文件的文件指针。10.3.3 10.3.3 文件的读写文件的读写一、字符读写函数 (fputc/fgetc或putc/getc)格式:fgetc(fp);fputc(ch,fp);#define putchar(c)fputc(c,stdout)#define getchar()fgetc(stdin)例:从键盘上输入一些字符,逐个将它们送到磁盘上去,直到输入一个“”为止。#include stdio.hmain()FILE*fp;char ch,filename10;scanf(%s,filename);if(fp=fopen(filename,w)
6、=NULL)printf(cannot open file n);exit(0);ch=getchar();while(ch!=#)putc(ch,fp);putchar(ch);ch=getchar();fclose(fp);#include stdio.hmain()FILE*in,*out;char ch,infile10,outfile10;printf(Enter the infile name:n);scanf(%s,infile);printf(Enter the outfile name:n);scanf(%s,outfile);if(in=fopen(infile,r)=NU
7、LL)printf(“cannot open infilen);exit(0);例:将一个磁盘文件中的信息复制到另一个磁盘文件中。if(out=fopen(outfile,w)=NULL)printf(cannot open outfilen);exit(0);while(!feof(in)putc(getc(in),out);fclose(in);fclose(out);#include stdio.hmain(argc,argv)int argc;char*argv;FILE*in,*out;if(argc!=3)printf(You forgot to enter a filenamen
8、);exit(0);例:修改上例,使之在执行可执行文件时输入两个文件名。if(in=fopen(argv1,r)=NULL)printf(cannot open infilen);exit(0);if(out=fopen(argv2,w)=NULL)printf(cannot open outfilen);exit(0);while(!feof(in)fputc(fgetc(in),out);fclose(in);fclose(out);二、字符串读二、字符串读/写函数写函数读字符串函数的一般调用形式为:fgets(字符数组名,n,文件指针);写字符串函数fputs的一般调用形式为:fputs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 10 文件 处理

限制150内