大学C语言设计文件课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大学C语言设计文件课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 设计 文件 课件
- 资源描述:
-
1、西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 1文文 件件西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 2外存上的数据存储在文件中外存上的数据存储在文件中控制器控制器运算器运算器内存储器内存储器外存储器外存储器(硬盘、(硬盘、U盘等)盘等)输入设备输入设备(键盘等键盘等)输出设备输出设备(显示器等)(显示器等)主机主机l在程序运行时,程序本身和数据一般都存放在内存中。当程在程序运行时,程序本身和数据一般都存放在内存中。当程序
2、运行结束后,存放在内存中的数据被释放。序运行结束后,存放在内存中的数据被释放。l如果如果需要长期保存程序运行所需的原始数据,或程序运如果如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。行产生的结果,就必须以文件形式存储到外部存储介质上。西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 3文件由操作系统管理文件由操作系统管理根目录根目录打开的子目录打开的子目录子子目目录录打开的子目录中的文件打开的子目录中的文件西安电子科技大学软件学院 -School of Com
3、puter Software,Xidian University,China 4C C语言中的文件概述语言中的文件概述l文件与文件名文件与文件名q文件文件是指存放在外部存储介质上的数据集合是指存放在外部存储介质上的数据集合q为了标识一个文件,每个文件都必须有一个文件名,其为了标识一个文件,每个文件都必须有一个文件名,其一般结构为:一般结构为:主文件名主文件名.扩展名扩展名 q文件命名规则需遵循操作系统的约定文件命名规则需遵循操作系统的约定l文件分类文件分类q根据文件的内容,可分为程序文件和数据文件,程序文件根据文件的内容,可分为程序文件和数据文件,程序文件又可分为源文件、目标文件和可执行文件。
4、又可分为源文件、目标文件和可执行文件。q根据文件的组织形式,可分为顺序存取文件和随机存取文根据文件的组织形式,可分为顺序存取文件和随机存取文件件q根据文件的存储形式,可分为根据文件的存储形式,可分为文本文件文本文件和和二进制文件二进制文件。例如:例如:test.c test.cpp stud.dat 考号考号.txt d:tc20fact.c西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 5文本文件和二进制文件文本文件和二进制文件l文本文件文本文件l二进制文件二进制文件q以文本(字符串)格式存储以文本(字符串)
5、格式存储q文本分行,行尾有行结束标志文本分行,行尾有行结束标志q读写时发生数据转换(自动或人工),转换过程可逆读写时发生数据转换(自动或人工),转换过程可逆q程序容易处理,程序员也容易理解,效率较低程序容易处理,程序员也容易理解,效率较低q以二进制格式存储以二进制格式存储q内容不分行,行尾无行结束标志内容不分行,行尾无行结束标志q读写时不发生数据转换,文件中的内容与信息在内存中的读写时不发生数据转换,文件中的内容与信息在内存中的存储布局相同存储布局相同q程序容易处理,程序员不容易理解,效率较高程序容易处理,程序员不容易理解,效率较高西安电子科技大学软件学院 -School of Compute
6、r Software,Xidian University,China 6例如 int型数据10000在文件中的存储方式00000000文本形式文本形式00000000 00100111 0001000010000的内存存储形式(的内存存储形式(32位)位)00110001 00110000 00110000 00110000 0011000000000000 00000000 00100111 00010000二进制形式二进制形式4948484848003916西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 7
7、C C语言中的文件概述语言中的文件概述l读文件与写文件读文件与写文件q所谓读文件是指将外存文件中的数据读取到计算机内存所谓读文件是指将外存文件中的数据读取到计算机内存的操作。(外设也被抽象为文件)的操作。(外设也被抽象为文件)控制器控制器运算器运算器内存储器内存储器外存储器外存储器(硬盘、(硬盘、U盘等)盘等)输入设备输入设备(键盘等键盘等)输出设备输出设备(显示器等)(显示器等)主机主机q所谓写文件是指从计算机内存向外存文件写入数据的操所谓写文件是指从计算机内存向外存文件写入数据的操作。作。读读读读写写写写西安电子科技大学软件学院 -School of Computer Software,X
8、idian University,China 8C C语言中的文件概述语言中的文件概述l构成文件的基本单元与流式文件构成文件的基本单元与流式文件qC语言语言将文件看作是由一个一个的字符(文本文件)或将文件看作是由一个一个的字符(文本文件)或字节(二进制文件)组成的。将这种文件称为流式文件。字节(二进制文件)组成的。将这种文件称为流式文件。控制器控制器运算器运算器内存储器内存储器输入设备、输入设备、外存外存输出设备、输出设备、外存外存主机主机 0 1 0 0 1 1 1 0 1 0 西安电子科技大学软件学院 -School of Computer Software,Xidian Universi
9、ty,China 9文件缓冲区文件缓冲区输出文件缓冲区输入文件缓冲区程序数据区变量a慢速的外设与快速的主机(慢速的外设与快速的主机(CPU、内存)之间需要、内存)之间需要一个缓冲区(一般由系统创建),以暂存需要传输一个缓冲区(一般由系统创建),以暂存需要传输的数据的数据西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 10缓冲文件系统缓冲文件系统慢速的外设与快速的主机(慢速的外设与快速的主机(CPU、内存)之间需要、内存)之间需要一个缓冲区(一般由系统创建),以暂存需要传输一个缓冲区(一般由系统创建),以暂存需要
10、传输的数据的数据外存文件输出文件缓冲区输入文件缓冲区程序数据区a西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 11文件的基本操作文件的基本操作l文件打开操作文件打开操作l文件关闭操作文件关闭操作l读取文件中的数据操作读取文件中的数据操作l在文件中写入数据的操作在文件中写入数据的操作l文件结束检测操作文件结束检测操作l文件错误检测操作文件错误检测操作l文件缓冲区与流刷新操作文件缓冲区与流刷新操作l文件指针定位操作文件指针定位操作l文件指针位置查询操作文件指针位置查询操作l文件指针重定位操作文件指针重定位操作西安
11、电子科技大学软件学院 -School of Computer Software,Xidian University,China 12文件的基本操作文件的基本操作l在在C程序中如何操作文件?程序中如何操作文件?l由由C系统(系统(C语言实现者)提供文件操作函数语言实现者)提供文件操作函数l按照一定的格式和步骤,借助按照一定的格式和步骤,借助文件指针文件指针,调用文,调用文件操作函数,件操作函数,西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 13文件操作的标准库函数文件操作的标准库函数(stdio.h)lfope
12、n lfclose fclosealllfeoflfgetc /fputc lfgets /fputslfscanf /fprintflfread /fwritelrewindlfseeklferrorlfflush西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 14文件操作的标准库函数文件操作的标准库函数lfopen lfcloselfeoflfscanf /fprintfl(其他函数以后再介绍,也可自己看其他函数以后再介绍,也可自己看)西安电子科技大学软件学院 -School of Computer Sof
13、tware,Xidian University,China 15文件指针文件指针l文件指针类型文件指针类型q文件指针类型格式:文件指针类型格式:FILE*q说明:所有对文件的操作都需要使用文件指针类型说明:所有对文件的操作都需要使用文件指针类型l文件指针变量文件指针变量q定义格式:定义格式:FILE*fp;q说明:要访问某个文件,一定需要首先定义文件指针类说明:要访问某个文件,一定需要首先定义文件指针类型的变量,并将该变量与对应文件关联起来,此后才能型的变量,并将该变量与对应文件关联起来,此后才能进行文件操作进行文件操作西安电子科技大学软件学院 -School of Computer Soft
14、ware,Xidian University,China 16文件的打开和关闭文件的打开和关闭l对文件进行操作前,必须先打开该文件;使用结束对文件进行操作前,必须先打开该文件;使用结束后,应立即关闭。后,应立即关闭。l语言规定了标准输入输出函数库,用语言规定了标准输入输出函数库,用fopen()函数函数打开一个文件,用打开一个文件,用fclose()函数关闭一个文件。函数关闭一个文件。l进行文件操作前,首先应定义一个文件指针变量,进行文件操作前,首先应定义一个文件指针变量,格式为:格式为:FILE*fp;其中,变量名其中,变量名fpfp可换成其他名字可换成其他名字西安电子科技大学软件学院 -S
15、chool of Computer Software,Xidian University,China 17若文件打开操作成功,此若文件打开操作成功,此后在程序中,后在程序中,fpfp就代表外就代表外存上的文件存上的文件fact.cfact.c打开文件和关闭文件打开文件和关闭文件l用函数用函数fopen()fopen()打开指定文件打开指定文件l例如,以只读方式打开文件例如,以只读方式打开文件fact.c:fp=fopen(fp=fopen(fact.cfact.c,r r););fp=fopen(fp=fopen(文件名文件名,打开文件方式打开文件方式);l用函数用函数fclose()fclo
16、se()关闭前面打开的文件关闭前面打开的文件fclose(fp);fclose(fp);西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 18打开文件的方式打开文件的方式fp=fopen(fp=fopen(文件名文件名,打开文件方式打开文件方式);文件打开方式 意义 ”r”只读打开一个文本文件,只允许读数据 ”w”只写打开或建立一个文本文件,只允许写数据 ”a”追加打开一个文本文件,并在文件末尾写数据 ”rb”只读打开一个二进制文件,只允许读数据 ”wb”只写打开或建立一个二进制文件,只允许写数据 ”ab”追加打
17、开一个二进制文件,并在文件末尾写数据 ”r+”读写打开一个文本文件,允许读和写 ”w+”读写打开或建立一个文本文件,允许读写 ”a+”读写打开一个文本文件,允许读,或在文件末追加数据 西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 19创建一个数据文件创建一个数据文件(向文件写入数据)(向文件写入数据)西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 20创建数据文件创建数据文件步骤:步骤:1)1)定义文件指针变量和其他变量;定义
18、文件指针变量和其他变量;2)2)以只写方式(或追加方式)打开文件(以只写方式(或追加方式)打开文件(用用fopen函数函数););3)3)是否继续写入:是否继续写入:是,转是,转4);4);否,转否,转5)5);4)4)向文件中写入一个数据(向文件中写入一个数据(用用fprintf函数函数),转),转3 3););5)5)关闭文件(关闭文件(用用fclose函数函数)。)。西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 21格式化读写数据:格式化读写数据:fscanf/fprintfl函数函数fprintf()
19、以指定格式向文件写入数据,返回值以指定格式向文件写入数据,返回值为写入的字符个数为写入的字符个数fprintf(文件指针文件指针,格式串格式串,输出表列输出表列);/除了增加文件指针参数除了增加文件指针参数,与与printf用法相同用法相同例如:例如:fprintf(fp,%d,10000);/将将10000写入文件写入文件F一般不需要使用一般不需要使用fprintf的返回值的返回值F写入整数或浮点数时,数之间应有间隔写入整数或浮点数时,数之间应有间隔l例如,将从键盘输入的例如,将从键盘输入的5个整数写入个整数写入“c.in”文件。文件。西安电子科技大学软件学院 -School of Comp
20、uter Software,Xidian University,China 22#include int main()FILE*fout;int i,a;fout=fopen(c.in,w);if(fout=NULL)printf(open file error!n);return 0;创建文件:格式化读写创建文件:格式化读写l编写程序,将从键盘输入的编写程序,将从键盘输入的5个整数写入个整数写入“c.in”文文件。件。for(i=0;i5;i+)scanf(%d,&a);fprintf(fout,%dt,a);fclose(fout);return 0;西安电子科技大学软件学院 -Schoo
21、l of Computer Software,Xidian University,China 23读取数据文件中的数据读取数据文件中的数据西安电子科技大学软件学院 -School of Computer Software,Xidian University,China 24读取文件中的数据读取文件中的数据步骤:步骤:1)1)定义文件指针变量和其他保存数据的变量;定义文件指针变量和其他保存数据的变量;2)2)以只读方式打开文件(以只读方式打开文件(用用fopen函数函数););3)3)判断文件是否结束判断文件是否结束(用用feof函数函数):是,转是,转5);5);否,转否,转4)4);4)4)
展开阅读全文