




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章文件处理程序设计 23 04 2020 2 提出问题 如何将一个文件的内容复制到另一个文件中 23 04 2020 3 问题的分析 前面程序处理的数据要么是直接写在程序中 要么是在程序运行时由键盘输入 而程序的处理结果只在屏幕上显示 当程序要处理大量数据时 这种数据处理方式就会带来诸多不便 23 04 2020 4 文件的分类 从用户的角度 文件分为 标准设备文件stdinstdoutstderr普通磁盘文件从文件的编码方式 文件分为 ASCII文件二进制文件 23 04 2020 5 键盘为标准的输入文件 文件指针为stdin 从键盘上输入就意味着从标准输入文件上输入数据 如scanf getchar函数 显示器为标准输出文件 文件指针为stdout 在屏幕上显示有关信息就是向标准输出文件输出 如printf putchar函数 标准错误输出也是标准设备文件 文件指针为stderr 23 04 2020 6 本章所讲的文件主要是针对普通的磁盘文件 23 04 2020 7 ASCII文件 也称文本文件 ASCII文件在磁盘中存放时 每个字符对应一个字节 用于存放对应的ASCII码 如 整型十进制数5678 按ASCII文件存放则需要占用4个字节 23 04 2020 8 二进制文件 是对不同的数据类型 按其实际占用内存字节数存放 即内存的存储形式 原样输出到磁盘上存放 如 整型十进制数5678 按二进制文件存放只需要2个字节 23 04 2020 9 23 04 2020 10 例如 十进制整数12345的存储形式如图7 2所示 按ASCII码形式存储共占用5个字节 而采用二进制形式存储只需要2个字节 内存存储形式 二进制文件形式 00110000 00111001 00110000 00111001 图 7 2 两种文件形式与内存形式之间的关系 1 的 A SCII2 50 3 51 4 52 5 53 码为 49 ASCII 文件 文本文件 形式 00110010 00110011 00110100 00110101 00110001 1 23 04 2020 11 在C语言中 没有专门的文件输入输出语句 对文件的读写都是用库函数来实现的 基本的文件操作都在标准I O库接口stdio h中 23 04 2020 12 调用磁盘上的一个文件时 必须知道与该文件有关的信息 比如文件名字 文件的当前读写位置 文件缓冲区大小与位置 文件的操作方式等 这些信息被C语言系统保存在一个称作FILE的结构体中 通常它被放在stdio h头文件内 23 04 2020 13 typedefstruct intlevel 缓冲区 满 或 空 的程度 unsignedflags 文件状态标志 charfd 文件描述符 unsignedcharhold 如无缓冲区不读取字符 intbsize 缓冲区大小 unsignedchar buffer 数据缓冲区位置 unsignedchar curp 文件定位指针 unsignedistemp 临时文件指示器 shorttoken 用于有效性检查 FILE 23 04 2020 14 文件指针 对于每一个要操作的文件 都必须定义一个指针变量 并使它指向该文件结构体变量 这个指针称为文件指针 通过文件指针找到被操作文件的描述信息 就可对它所指的文件进行各种操作 FILE 指针变量标识符 其中FILE应为大写 23 04 2020 15 文件的操作 对文件的操作的一般步骤包括 打开文件文件的读写关闭文件在 语言中 文件操作都是由库函数来完成的 这些库函数包含在stdio h头文件中 23 04 2020 16 文件的打开与关闭 打开文件是建立文件的各种有关信息 并使文件指针指向该文件 以便进行其它各种操作 关闭文件是断开指针与文件之间的联系 禁止再对该文件进行操作 23 04 2020 17 文件的打开 文件指针名 fopen 文件名 使用文件方式 如 FILE fp1 fp1 c tt test exe rb 其意义是打开C驱动器磁盘的tt目录下的文件test exe 这是一个二进制文件 只允许按二进制方式进行读操作 两个反斜线 中的第一个表示转义字符 第二个表示根目录 23 04 2020 18 文件的打开使用函数fopen 函数原型为 FILE fopen char filename char type filename为需要打开的文件名 type为文件打开的类型 也是一个字符串 用于确定文件的使用方式 可以选用的方式如下 23 04 2020 19 23 04 2020 20 文件的关闭 fclose 文件指针 功能 使文件指针变量与文件 脱钩 释放文件结构体和文件指针 返回值 关闭成功时返回值为0 否则 如磁盘空间不足 写保护或关闭已经关闭的文件 返回EOF 即 1 23 04 2020 21 文件的关闭使用函数fclose 函数原型为 intfclose FILE stream 其中 stream为文件流指针 它的作用是使文件指针变量不再指向该文件 同时关闭文件 当文件正常关闭时 返回0值 当文件关闭失败时 返回非0值 23 04 2020 22 例7 2 打开test txt文件 include includevoidmain FILE fp 定义文件指针 fp fopen test txt w 以写方式打开文件test txt if fp NULL printf fileopenerror n exit 0 终止程序运行 返回操作系统0值 elseprintf fielopenOK n fclose fp 关闭文件 23 04 2020 23 exit函数原型为 voidexit intstatus 功能 终止程序 它将status的值发送给DOS环境变量 它在stdlib h中声明 23 04 2020 24 顺序文件的读写 文件的顺序读写 是指文件被打开后 按照数据流的先后顺序对文件进行读写操作 每读写一次后 文件指针自动指向下一个读写位置 在 语言中提供了多种文件读写的函数 分别如下 1 字符读写函数 fgetc和fputc 2 字符串读写函数 fgets和fputs 3 格式化读写函数 fscanf和fprinf 23 04 2020 25 fgetc函数的功能是从指定的文件中读一个字符 函数原型为 intfgetc FILE stream fputc函数的功能是把一个字符写入指定的文件中 函数原型为 intfputc charch FILE stream 23 04 2020 26 例7 3 从键盘输入字符存入文件中 以 号结束 includevoidmain FILE fp charch filename 10 scanf s filename if fp fopen filename w NULL 建立并打开新文件 printf cannotopenfile n exit 0 终止程序 ch getchar 读scanf的回车符 ch getchar 输入第一个字符 while ch 如果输入 号则结束 fputc ch fp 将ch写入fp所指向的文件 putchar ch 将ch在屏幕上输出 即写入stdin所指向的文件 ch getchar fclose fp 关闭文件 23 04 2020 27 fgets函数的功能是从fp所指向的文件中读n 1个字符 放到以string为起始地址的存储空间 string可以是数组名 函数原型为 char fgets char string intn FILE fp 23 04 2020 28 例7 4 从temp txt文件中读入一个含10个字符的字符串 includevoidmain FILE fp charstr 11 if fp fopen temp txt r NULL printf Cannotopenfilestrikeanykeyexit exit 1 fgets str 11 fp printf s str fclose fp 23 04 2020 29 fputs函数的功能是将string所表示的字符串内容 不含最后的 0 输出到fp所指向的文件中去 函数原型为 intfputs char string FILE fp 23 04 2020 30 例7 5 向文件string txt中追加一个字符串 includevoidmain FILE fp charch st 20 if fp fopen string txt a NULL printf Cannotopenfilestrikeanykeyexit exit 1 printf inputastring n scanf s st 23 04 2020 31 fputs st fp 将串写入文件中 fclose fp 23 04 2020 32 fscanf函数 fprintf函数与前面使用的scanf和printf函数的功能相似 都是格式化读写函数 两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器 而是磁盘文件 23 04 2020 33 fscanf函数的功能是按照format给出的控制符格式 把从fp所指向的文件中读取的内容 分别赋给变元arg1 argn 函数原型为 intfscanf FILE fp char format arg1 argn 23 04 2020 34 fprintf函数的功能是按照format给出的控制符格式 将变元arg1 argn的值写入到fp所指向的文件中去 函数原型为 intfprintf FILE fp char format arg1 argn 23 04 2020 35 函数 数据块的读取fread 首地址 长度 数量 fp fwrite 首地址 长度 数量 fp 23 04 2020 36 文件定位 1 rewind fp 定位在fp文件的首地址 2 fseek fp 100l 0 23 04 2020 37 structstu charname 10 intnum intage charsex s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何推动农业科技与产业融合发展
- 小区停车管理规定解析
- 化学品生产工艺技术规定
- 2025浙江金华市武义县司法局招聘4人笔试含答案
- 如何让绿植更好抵御寒冬
- 职业教育学习规范
- 心肌酶检测方法
- 2025西安国际港务区陆港第七小学招聘笔试含答案
- 2025年碳资产管理师考试题库(附答案和详细解析)
- 2025年事业单位工勤技能-广东-广东计算机信息处理员三级高级历年参考题库含答案解析
- 压力表课件教学课件
- 2025年科创板开通考试试题及答案
- 脊柱骨折护理查房
- 景区管理办法条例
- 2025年秋沪科版八年级数学上册 第11章综合测试卷
- 马工程中华人民共和国史(第二版)课件 第二章 社会主义建设道路的艰辛探索和曲折发展1
- 粉末冶金制品制造工技能测试题库及答案
- 《产品三维建模与结构设计(UG)》技工全套教学课件
- 昭阳区生活垃圾管理办法
- 项目绩效评价思路
- 蒙古舞课件教学课件
评论
0/150
提交评论