C语言程序设计教程第.pptx
《C语言程序设计教程第.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文件的分类:ASCII ASCII 码文件码文件(文本文件文本文件):文件的每一个字节放 一个ASCII代码,代表一个字符。二进制文件二进制文件:把内存中的数据按其在内存中的存 储形式原样输出到文件上。根据数据在内存的组织形式不同可分为两类文件 ASCII 码文件(文本文件)二进制文件 根据数据读写方式不同可分为两类文件 顺序存取文件 随机存取文件 第1页/共29页三、文件的基本操作(1)打开文件打开文件 把文件名等目录信息从磁盘上读把文件名等目录信息从磁盘上读 入内存并存入结构体。入内存并存入结构体。关闭文件关闭文件 把内存结构体中的文件名等目录把内存结构体中的文件名等目录 信息写入磁盘。信
2、息写入磁盘。(3)写文件写文件 向文件写内容。向文件写内容。(4)读文件读文件 从文件读内容。从文件读内容。四、文件的输入输出方式 C语言对文件进行处理分为:非缓冲文件系统 缓冲文件系统第2页/共29页非缓冲文件系统 程序与外设直接进行数据交换。特点 每读写一次都要启动外设。缓冲文件系统 程序与外设通过内存缓冲区进行 数据交换。(常用的方式)特点 只有内存缓冲区满(写盘)或空(读盘)才 启动外设。程序数据区输出文件缓冲区输入文件缓冲区磁盘第3页/共29页1.文件类型(FILE)每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件名,状态,当前位置等)。这些信息保存在一个结构体类
3、型的变量中。结构体类型由系统定义为“FILE”。有的C版本在 stdio.h文件中有如下定义:typedef struct int _fd;;/*文件号 */int _cleft;/*缓冲区中剩下的字符 */int _mode;/*文件操作模式 */char *_nexttc;/*下一个字符位置*/char *_buff;/*文件缓冲区位置*/FILE;13.1.文件指针第4页/共29页2.定义FILE类型指针变量 FILE 类型的指针变量定义方法 FILE *指针变量名;例如:FILE*fp;含义:fp是一个指向FILE类型结构体的指针变量。可以使可以使fpfp指向某个文件的结构体变指向某个
4、文件的结构体变量,从而通过该结构体变量中的文件信量,从而通过该结构体变量中的文件信息能够访问该文件。息能够访问该文件。第5页/共29页13.2 13.2 文件的打开与关闭 13.2.1 文件的打开函数(fopen函数)(1)(1)调用方式:FILE*fp;fp=fopen(文件名,文件的使用方式);所要打开的文件名。所要打开的文件名。必须是用双引号引起的字符串常量。具有特定含意的符号具有特定含意的符号也必须由双引号引起用户定义的文件类型指针变量功能:以指定的方式打开指定的文件,若操作 成功,则返回一个指向该文件的指针,若打 开文件时出现错误,则返回空指针NULL。例 FILE *fp;fp=f
5、open(stu.dat,r);第6页/共29页文件使用方式 基本方式字符(单独使用是对文本文件):r 仅为读而打开。仅为读而打开。(只读文件只读文件)w 仅为写而打开。仅为写而打开。(建立新文件建立新文件)a 仅为添加而打开。仅为添加而打开。(写旧文件写旧文件)按二进制格式读写文件(基本方式字符+“b”)b 辅助说明,按二进制格式读写文件。辅助说明,按二进制格式读写文件。同时进行读写文件(基本方式字符+“b”+“+”)+辅助说明,可同时进行读和写文件。辅助说明,可同时进行读和写文件。例如:fp=(“stu.dat”,“rb”);例如:fp=(“stu.dat”,“r+”);第7页/共29页例
6、:#include main()FILE*fp;if(fp=fopen(stu.dat,r)=NULL)printf(file not found.);exit(0);else printf(file opened ok!);fclose(fp);程序运行结果:如果磁盘上存在文件stu.dat,屏幕上会显示file open ok!,否则屏幕上显示file not found.。常使用此方法打开一个文件exit函数的功能是关闭所有文件,终止程序运行。exit(0)为正常终止程序第8页/共29页13.2.2 文件的关闭函数(fclose函数)(1)调用方式:fclose(fclose(文件指针文
7、件指针);功能:关闭由文件指针指定的文件,把缓冲区 中的数据(未装满缓冲区的数据)输出 到磁盘上,释放文件指针。例如:FILE*fp;fp=fopen(“output.dat”,“r+”);/*进行读写操作*/fclose(fp);注意:fopen函数和fclose函数总是成对出现的。无fclose函数时会导致部分数据丢失!第9页/共29页13.3 13.3 文件的读写 13.3.1 单个字符操作的读写函数 这两个函数是以字符为单位进行文件读写的函数。1.fputc1.fputc函数函数一般调用形式:fputc(fputc(字符常量或变量字符常量或变量,文件指针文件指针););功能:把指定字符
8、存入文件指针所指的文件中。如果输出失败,则返回一个EOF(-1)。例如:fputc(ch,fp);(其中ch为字符变量,fp为文件指针)含义:将ch的值输出到fp所指向的文件中去。(EOF是在stdio.h文件中定义的符号常量,值为-1)第10页/共29页2.fgetc2.fgetc函数函数一般调用形式:字符变量字符变量=fgetc(=fgetc(文件指针文件指针););功能:从文件指针所指文件中读一个字符赋给指 定的字符变量。当遇文件结束符,返回一 个文件结束标志EOF(-1)。例如:ch=fgetc(fp);其中ch为字符变量,fp为文件指针。含义:从fp所指向的文件中读入一个字符赋 给字
9、符变量ch。第11页/共29页例:阅读程序。#include stdio.h#define NULL 0 main()FILE*fp;int count=0;char c;if(fp=fopen(“file.txt”,“r”)=NULL)printf(“Cant Open File n”);exit(0);c=fgetc(fp);while(c!=EOF)count+;c=fgetc(fp);printf(“count=%dn”,count);fclose(fp);若文件file.txt的内容是:abcd1234ABCD输出结果:12这是读一个文本文件中字符,并判断文件是否结束的常用方法第12
10、页/共29页13.3.2 字符串的读写函数这两个函数是以字符串为单位进行文件读写的函数。一般调用形式:fputs(fputs(字符串字符串,文件指针文件指针););1.fputs函数功能:向指定文件输出一个字符串。例如:fputs(str,fp);(其中str是字符数组名)含义:向fp 所指向的文件中输出str中的字符串。2.fgets函数fgets(fgets(字符串字符串,字符串长度字符串长度,文件指针文件指针););功能:从指定文件中读入一个字符串。例如:fgets(str,n,fp);(其中str是字符数组名)含义:从fp指向的文件读取长度为n-1的字符串,最后加一个0存入字符数组st
11、r中。调用形式:第13页/共29页13.3.3 数据块的读写函数一般调用形式:fread(buffer,size,count,fp);fwrite(buffer,size,count,fp);其中:buffer:是一个指针。(是起始地址)。对fread来说,它是读入数据的存放地址。对fwrite来说,它是输出数据的地址。size:要读写的字节数。count:要进行读写多少个size字节的数据项。功能:对fp所指的文件读写buffer所指的size*count 个字节数据。例如:fread(f,4,2,fp);(其中f是实型数组名)第14页/共29页例1 把数组a写入文件fa;再从fa读入数组b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程
限制150内