欢迎来到天天文库
浏览记录
ID:50350452
大小:265.00 KB
页数:25页
时间:2020-03-08
《C_C++程序设计教程 教学课件 作者 王连相 等 第14讲 文件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、概述开关文件读写文件文件定位第14讲文件第7章文件及其操作文件:存储在外部介质上数据的集合,是操作系统数据管理的单位文件分类按文件的逻辑结构:记录文件:由具有一定结构的记录组成(定长和不定长)流式文件:由一个个字符(字节)数据顺序组成按存储介质:普通文件:存储介质文件(磁盘、磁带等)设备文件:非存储介质(键盘、显示器、打印机等)按数据的组织形式:文本文件:ASCII文件,每个字节存放一个字符的ASCII码二进制文件:数据按其在内存中的存储形式原样存放C文件概述使用数据文件的目的1、数据文件的改动不引起程序的改
2、动——程序与数据分离2、不同程序可以访问同一数据文件中的数据——数据共享3、能长期保存程序运行的中间数据或结果数据如int型数100000010011100010000内存存储形式0010011100010000二进制形式0011000100110000001100000011000000110000ASCII形式文本文件特点:存储量大、速度慢、便于对字符操作二进制文件特点:存储量小、速度快、便于存放中间结果如int型数100000010011100010000内存存储形式0010011100010000二进
3、制形式0011000100110000001100000011000000110000ASCII形式文本文件特点:存储量大、速度慢、便于对字符操作文件处理方法缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区磁盘文件输出文件缓冲区输入文件缓冲区程序数据区a缓冲文件系统:缓冲区指令区程序用户数据区磁盘非缓冲文件系统:文件类型指针文件结构体FILE缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构
4、体描述FILE定义在stdio.h中typedefstruct{int_fd;//文件号int_cleft;//缓冲区中剩下的字符数int_mode;//文件操作方式char*_next;//文件当前读写位置char*_buff;//文件缓冲区位置}FILE;文件类型指针指针变量说明:FILE*fp;用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件文件关闭后,它的文件结构体被释放文件名文件使用方式文件类型指针C程序操作系统磁盘文件的基本操作步骤各步骤的含
5、义….指向文件的指针变量在“stdio.h”中struct_iobuf{char_FAR_*_ptr;int_cnt;char_FAR_*_base;char_flag;char_file;};typedefstruct_iobufFILE;读写(创建)文件关闭文件打开文件typedefstruct{int_fd;/*文件号*/int_cleft;/*缓冲区剩下的字符*/int_mode;/*文件操作模式*/char*_nextc;/*下一个字符指针*/char*_buff;/*文件缓冲区指针*/}FILE;
6、例如:FILE*fp1,*fp2;2021/10/41.打开文件FILE*fp;fp=fopen(filename,mode);filename中可以带路径名。一般方法如下:FILE*fp;if((fp=fopen(“c:docexam.txt”,“w”))==NULL){puts(“Cannotopenthefile”);exit(1);}开关文件Mode(方式)意义“r”读文本文件“w”写生成文本文件“a”向文本文件追加“rb”读打开二进制文件“wb”写生成进制文件“ab”向二进制文件追加打开方式
7、(mode)Mode(方式)意义“r+”读写文本文件“w+”读写(创建)文本文件“a+”向文本文件追加“rb+”“读打开”二进制文件“wb+”读写(创建)二进制文件“ab+”向二进制文件读写(追加)打开方式(mode)2.关闭文件一般方法如下:fclose(FilePointer);或:if(fclose(filepointer)==NULL){printf(“closeerror”);exit(2);}使用FILE类型和fopen()、fclose()函数应包含stdio.h1.输入输出字符1)I/O字符c
8、h=fgetc(fp);fputc(ch,fp);putchar(ch)实际上是用fputc(ch,fp)定义的一个宏:#defineputchar(ch)fputc(ch,stdout)默认输出到标准输出设备-显示器即标准输出文件stdout。2)判断文件尾fgetc()在读到文件末尾时,返回文件结束标志EOF(在stdio.h中定义为-1。此标志只适合于文本文件,二进制文件中的数值-1会与其相混
此文档下载收益归作者所有