版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、YCF正版可修改PPT(中职)编程语言基础C语言模块8教学课件模块8文件任务1 文件的定义和分类任务2 文件的打开与关闭任务3 文件的读写任务1文件的定义和分类8.1.1 文件的定义通常,文件(File)是指保存在某种外部存储介质上的一组意义相关的数据集合。每个文件都必须用一个文件名来进行标识。操作系统就是根据文件的名称来对文件进行存取操作的。用户也可以建立自己的文件,用不同的名字和后缀(扩展名)来表示文件的意义和类型。由文件的定义还可以看出,文件操作一般会涉及外部存储介质的存储操作,通常的访问对象是磁盘。上面所讲的文件实际上是指磁盘文件,但在操作系统中,许多外部设备也可以被看做是文件,这样的
2、文件称为设备文件。每个设备都有唯一的一个设备文件名。在C语言系统中,也采用类似的方法。C系统定义了5个标准设备文件,如表8-1所示。下一页返回任务1文件的定义和分类8.1.2 文件的分类文件有很多种,常见的有文本文件、图形文件、声音文件、可执行文件等,它们可以有很多分类方法。而c语言关心的是文件中数据的存储方式,就此而言,文件分为以下两类。1. 文本文件文本文件是指由字符组成的文件。字符可以是字母、数字、运算符等,每个字符通过相应的编码存储在文件中。目前常用的编码是ASCII码,它用一个字节来对这些字符进行编码。2. 二进制文件二进制文件是指数据按存储原样组成的文件。仍以存储数16为例,在二进
3、制文件中直接存放的就是16,因此只要占用一个字节就行了。上一页返回任务2文件的打开与关闭 8.2.1 文件的打开 (fopen()函数)函数用来打开文件,正常操作时,它将为 用户指定的文件在内存中分配一个FILE结构区,并将该结构区的指针作为函数值返回,以后用户可以通过指针来对文件进行存取操作。1. 一般形式上一页返回下一页任务2文件的打开与关闭 2. 说明文件指针变量要在使用前进行定义;文件名是字符串或字符串变量。若是字符串变量,应在使用前赋值;方式表示欲对所打开的文件进行的访问方式。Turbo C所使用的标记符和含义如表8-2所示。(1)当用”w”方式打开一个文件时,若已存在与该文件名相同
4、的文件则会被抹掉,重建一个新文件。若不存在该文件,则新建一个用该文件名命名的文件。(2)当用”r”方式或”a”方式打开一个文件时,该文件必须存在,不然会返回一个出错信息。上一页返回下一页任务2文件的打开与关闭(3)给文件名变量赋值或书写文件名字符串时,应注意文件名包括盘符和路径。路径的分隔符要加上转义字符“”,因此在格式中出现的是“c: data.”。如果被打开的文件在当前盘当前目录下,则盘符和路径可以省略。(4)如果需要向文件尾部添加新的数据(不删除原有数据),则应该用“a”方式打开。但此时该文件必须已经存在,否则将得到出错信息。用该方式打开文件时,其内部的位置指针指向文件尾。(5)用“r+
5、”、“w+”、a+”方式打开的文件可以用来输入和输出数据。上一页返回下一页任务2文件的打开与关闭(6)如果不能实现“打开”的任务,fopen函数将返回一个NULL空指针。经常利用这一点来判断文件的打开操作是否正常,若不正常,则应给出相应的出错信息。(7)在应用文本文件向计算机输入时,将回车换行符转换为一个换行符,在输出时把换行符转换成为回车和换行两个字符。在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致。(8)在程序开始运行时,系统自动打开3个标准文件:标准输入、标准输出、标准出错输出。通常这3个文件都与终端相联系。上一页返回下一页任务2文件的打开与关闭
6、8.2.2 文件的关闭(fclose()函数)文件操作完以后,为了确保数据保存的完整性,一定要关闭文件。文件关闭后,该文件对应的FILE结构区便被释放,从而使被关闭的文件得到保护。此后,文件指针变量与文件脱离指向关系,以后不能再通过该指针对其相连的文件进行读写操作。1. 一般形式上一页返回下一页任务2文件的打开与关闭2. 说明文件指针变量是在文件打开之前定义的,打开时,将它指向打开的文件,以便对文件进行读写操作。关闭文件,就是使文件指针变量不再指向该文件,同时将尚未写入磁盘的数据(存在内存缓冲区中的数据)写入磁盘,从而保证写入文件的数据的完整性。作为良好的习惯,应该在文件操作完毕及时进行关闭。
7、C语言的流式文件,在打开时建立一个内存文件缓冲区,读写数据是通过批处理方式对磁盘进行工作的。当写数据时写满缓冲区才向磁盘写一次,因此,若在缓冲区不满时结束操作,文件中的数据可能不全;但在文件关闭时,不管缓冲区是否已满,都要向磁盘文件中写一次,这样就能保证数据不丢失。上一页返回下一页任务2文件的打开与关闭如不注意及时关闭文件,还会造成两个不良的后果。(1)出现文件不够用的错误。C系统可以提供20个文件供用户使用,除了有5个被系统的标准文件占用外,用户还可以使用15个。虽然这个数目看着很大,但如果多次打开文件而不注意随时关闭的话,仍然会产生文件不够用的现象。(2)系统自动关闭文件。有时在文件打开太
8、多的时候,系统会自动地关闭一些文件,这样关闭的文件,可能会造成数据的丢失。上一页返回任务3文件的读写8.3.1 文件的顺序读写对文件的读和写是最常用的文件操作。在c语言中提供了多种文件读写的函数。使用以上函数都要求包含头文件stdio. h 返回下一页任务3文件的读写1. fputc()用fputc()可以将指定的单个字符输出到磁盘文件中去,其调用的一般形式为:该函数的功能是将参数中指定的字符输出到文件指针所指向的磁盘文件中去。如果函数执行成功,返回被输出的字符;否则返回EOF(文件结束标志,是系统预定义的符号常量,其值为-1)。上一页返回下一页任务3文件的读写【例8-1】将指定的字符输出到磁
9、盘文件中。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写2. fgetc()用fgetc()可以一次从磁盘文件中读取一个字符,其调用的一般形式为:该函数的功能是从文件指针所指向的文件中读取一个字符并把它赋值给字符变量, fgetc()的返回值就是该字符。如果在执行坛fgetc()时遇到文件结束符,则返回EOF。可以利用该函数来判断文件中的数据是否被读完。上一页返回下一页任务3文件的读写【例8-2】从磁盘文件中读取一个字符。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写3. fputs()用fputs()可以将字符数组中的字符串输出到磁盘文件中,其调用的一般形
10、式为:该函数的功能是将字符串输出到文件指针所指向的文件中去,但字符串结束标志0不输出。【例8-3】从键盘上输入3个字符串,将它们输出到一个磁盘文件中去。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写4. fgets()用fgets()可以从一个磁盘文件中读取一个字符串到字符数组中,其调用的一般形式为:该函数的功能为从文件指针所指向的文件中读取n-1个字符,并把它存放到字符数组中。如果在读入n-1个字符完成之前遇到换行符n或文件结束标志EOF,则结束读取。但它会将遇到的换行符n也作为一个字符送入字符数组。在字符串读入后会自动加上一个字符串结束标志
11、0。该函数的返回值为字符数组的首地址,若出错将返回NULL。上一页返回下一页任务3文件的读写【例8-4】从磁盘文件中读回字符串并在屏幕上显示。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写5. fprintf()用frintf()可以将数据以一定的格式输出到磁盘文件中去,其调用的一般形式为:该函数的功能是将各输出项以格式控制字符串中所指定的格式输出到文件指针所指向的文件中去。【例8-5】格式化数据输出到磁盘文件。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写6. fscanf()用fscanf()可以以一定的格式将数据从磁盘文件中读取出来,其调用的一般形式为
12、:该函数的功能是以格式控制字符串中所指定的格式将数据从文件指针所指向的文件中读取出来,然后分别送给指定的变量。【例8-6】以一定的格式从磁盘文件中读取数据并在屏幕上显示。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写7. fwrite()用fwrite()可以将一批数据(如数组所有元素值、结构体变量的值)作为一个整体一次性写入磁盘文件,其调用的一般形式为:该函数的功能是从buffer所代表的起始地址开始,每次输出字节大小为size的数据块,共输出count次,输出到年所指向的磁盘文件中去,若函数执行成功则返回count的值。应当注意:用fwri
13、te()实行按“块”操作,必须采用二进制方式。上一页返回下一页任务3文件的读写【例8-7】从键盘上输入一批学生信息并输出到磁盘文件中。上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写上一页返回下一页任务3文件的读写8. fread()用fread()可以将磁盘文件中的一批数据(如数组所有元素值、结构体变量的值)作为一个整体一次性读取出来,其调用的一般形式为:该函数的功能是从fp所指向的磁盘文件中每次读取字节大小为size的数据块,共读取count次,存放到以buffer为起始地址的内存空间中,若函数执行成功则返回count的值。应当注意:frea
14、d()也是实行按“块”操作,也必须采用二进制方式。上一页返回下一页任务3文件的读写8.3.2 文件的随机读写前面介绍的对文件的读写方式都是顺序读写,即读写文件只能从头开始,顺序读写各个数据,但在实际中常要求只读写文件中某一指定的部分。从前面的学习中可知,在文件内部有一个系统自动设置的“读写位置指针”,只要将位置指针移动到需要的地方,就能实现文件的随机读写。实现文件随机读写的关键是要准确地移动位置指针,这称为文件的定位。在C语言中,文件的定位及相关操作也是由库函数来完成的。上一页返回下一页任务3文件的读写1. fseek()利用fseek()可以将位置指针移动到所需位置,其一般调用形式为:fee
15、ek(文件指针变量,位移量,起始点);该函数的作用是以“起始点”为基准,将文件指针所指向的文件中的位置指针按指定的“位移量”进行移动。其中,“位移量”为long类型的数据,表示要移动的字节数,可正可负。若位移量为正数,表示从文件开头向文件末尾移动;否则移动方向相反。“起始点”指的是以什么地方为基准进行移动,它可用数字表示,也可用宏名来表示,其表示方法如表9-2所示。如果函数执行成功,返回值为0;否则为非0值。上一页返回下一页任务3文件的读写例如需要注意的是,fseek()一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。上一页返回下一页任务3文件的读写2. rewin
16、d()利用rewind()可以使位置指针重新返回文件的开头处。其一般调用形式为:rewind(文件指针变量);该函数没有返回值。3. ftell()利用ftell)可以知道位置指针的当前指向。其一般调用形式为:ftell(文件指针变量);该函数的返回值为文件指针所指向的文件中位置指针的当前指向,如果出错,则返回-1上一页返回下一页任务3文件的读写8.3.3 文件检侧1. feof()调用的一般形式为:feof(文件指针变量);它的功能是判断文件是否处于文件结束位置,如文件结束,则返回值为1;否则为02. ferror()在C语言中,大多数的文件操作函数并没有明确的出错信息返回。因此,C语言提供了一个可以检测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年神经内科主治医师练习题及答案
- 停电应急预案演练脚本护士
- 呼吸机故障突发断电应急处置演练脚本
- 2026传统文化元素在实木茶具设计中的商业化实践
- 高级酒店接待员客户反馈处理绩效考核表
- 农产品企业供应链整合与效率提升指导书
- 客户售后服务需求处理通知(5篇)范文
- 个人护理产品研发效果安全评价表
- 教育机构如何制定课程体系优化方案
- 物流仓储企业货物分发流程手册
- 2026年高危孕产妇培训模拟试题(含答案)
- 财务会计-新修订版财务报表模板-财会2026-11号
- 2026年水利工程安全生产A证考试题库
- 2026年经济师(中级)考试真题及答案
- 中国联通春季校园招聘笔试真题及试题及答案
- 2026年国家工作人员学法用法考试题库附参考答案
- 2026年水利安全员C证备考重点题库(新版350题)
- 第9课 特殊关爱 助我成长 第2课时 课件(内嵌视频)2026-2027学年道德与法治六年级上册统编版
- 2026年国考公安专业知识真题及答案解析
- 2026年内蒙古自治区中考生物试卷(含答案及解析)
- 劳务派遣公司安全生产规章制度
评论
0/150
提交评论