c语言程序设计现代方法PPT课件_第1页
c语言程序设计现代方法PPT课件_第2页
c语言程序设计现代方法PPT课件_第3页
c语言程序设计现代方法PPT课件_第4页
c语言程序设计现代方法PPT课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第22章文件 文件基本概念文件打开与关闭文件读写 2 1C文件概述 文件 存储在外部介质上数据的集合 是操作系统数据管理的单位 使用数据文件的目的 1 数据文件的改动不引起程序的改动 程序与数据分离 2 不同程序可以访问同一数据文件中的数据 数据共享 3 能长期保存程序运行的中间数据或结果数据 3 文件分类 按文件的逻辑结构 记录文件 由具有一定结构的记录组成 定长和不定长 流式文件 由一个个字符 字节 数据顺序组成按存储介质 普通文件 存储介质文件 磁盘 磁带等 设备文件 非存储介质 键盘 显示器 打印机等 按数据的组织形式 文本文件 ASCII文件 每个字节存放一个字符的ASCII码二进制文件 数据按其在内存中的存储形式原样存放 4 EOF 文件的结束符 C语言中规定的标准文件有三个 标准输入文件 键盘 文件指针为stdin 标准输出文件 显示屏幕 文件指针为stdout 标准出错输出文件 文件指针为stderr C语言中的文件为流式文件 一个字节流或二进制流 文件的读写是按顺序进行的 以字符 字节 为单位 这些文件在操作前或后 系统会自动将其打开或关闭 编程时不需管 5 文本文件特点 存储量大 速度慢 便于对字符操作 二进制文件特点 存储量小 速度快 便于存放中间结果 可节省外存空间和转换时间但不能直接输出字符 6 文件处理方法 缓冲文件系统 高级文件系统 系统自动为正在使用的文件开辟内存缓冲区非缓冲文件系统 低级文件系统 由用户在程序中为每个文件设定缓冲区 7 2文件类型指针 文件结构FILE缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构描述FILE定义在stdio h中 typedefstruct int fd 文件号 int cleft 缓冲区中剩下的字符数 int mode 文件操作方式 char next 文件当前读写位置 char buff 文件缓冲区位置 FILE 8 文件类型指针指针变量说明 FILE fp 用法 文件打开时 系统自动建立文件结构 并把指向它的指针返回来 程序通过这个指针获得文件信息 访问文件文件关闭后 它的文件结构被释放 9 3文件的打开与关闭 一般文件 操作前需打开 操作后需关闭 打开和关闭均是通过库函数进行的 打开文件就是要在内存中建立缓冲区 如打开成功 打开函数返回一个内存地址值 由一个文件指针接收 以后的操作使用这个指针 若内存不可建立缓冲区 则打开失败 打开函数返回NULL 关闭文件很重要 是要将文件送回磁盘 并从内存中清除 及时释放内存空间 并可保证文件安全 文件使用方式 打开文件 文件读 写 关闭文件 10 打开文件fopen函数原型 FILE fopen char name char mode 功能 按指定方式打开文件返值 正常打开 为指向文件结构的指针 打开失败 为NULL 要打开的文件名 使用文件方式 例FILE fp fp fopen c py test dat r 例FILE fp char filename c py test dat fp fopen filename r 11 文件关闭fclose函数原型 intfclose FILE fp 功能 关闭fp指向的文件 使文件指针变量与文件 脱钩 释放文件结构占用的内存空间返值 正常关闭为0 出错时 非0 文件打开时返回的文件指针 不关闭文件可能会丢失数据 12 4文件的读写 字符I O fputc与fgetcfputc函数原型 intfputc charc FILE fp 功能 把一字节代码c写入fp指向的文件中返值 正常 返回c 出错 返回非0fgetc函数原型 intfgetc FILE fp 功能 从fp指向的文件中读取一字节代码返值 正常 返回读到的字符 读到文件尾或出错 为EOF 例 从键盘输入字符 逐个存到磁盘文件中 直到输入 为止 includemain FILE fp charch filename out txt if fp fopen filename w NULL printf cannotopenfile n exit 0 printf Pleaseinputstring ch getchar while ch fputc ch fp putchar ch ch getchar fclose fp 例 读文本文件内容 并显示 includemain FILE fp charch filename out txt if fp fopen filename r NULL printf cannotopenfile n exit 0 while ch fgetc fp EOF putchar ch fclose fp 判断文本文件是否结束 例 使用文件处理函数 以及命令行参数 实现拷贝任何类型的文件 includemain intargc char argv FILE in out charch if argc 3 printf Usage sourcefilenameandtargetfilename exit 1 if in fopen argv 1 rb NULL printf Cannotopensourcefile n exit 1 if out fopen argv 2 wb NULL printf Cannotopentargetfile n exit 1 while feof in Thiscodeactuallycopiesthefile ch fgetc in fputc ch out fclose in fclose out 运行 c testctempnewfile 字符串I O fgets与fputs函数原型 char fgets char s intn FILE fp intfputs char s FILE fp 功能 从fp指向的文件读 写一个字符串返值 fgets正常时返回读取字符串的首地址 出错或文件尾 返回NULLfputs正常时返回0 出错返回非0 feof函数原型 intfeof FILE fp 功能 判断文件是否结束返值 文件结束 返回真 非0 文件未结束 返回0 16 数据块I O fread与fwrite函数原型 size tfread void buffer size tsize size tcount FILE fp size tfwrite void buffer size tsize size tcount FILE fp 功能 读 写数据块 成功 返回读 写的块数 出错或文件尾 返回0说明 typedefunsignedsize t buffer 指向要输入 输出数据块的首地址的指针size 每个要读 写的数据块的大小 字节数 count 要读 写的数据块的个数fp 要读 写的文件指针fread与fwrite一般用于二进制文件的输入 输出 17 例 从键盘输入4个学生数据 先转存到磁盘文件再读出显示 include defineSIZE4structstudent type charname 10 intnum intage charaddr 15 stud SIZE main inti for i 0 i SIZE i scanf s d d s stud i name voidsave FILE fp inti if fp fopen d py stu dat wb NULL printf cannotopenfile n return for i 0 i SIZE i if fwrite voiddisplay FILE fp inti if fp fopen d py stu dat rb NULL printf cannotopenfile n return for i 0 i SIZE i fread 18 格式化I O fprintf与fscanf函数原型 intfprintf FILE fp constchar format argument intfscanf FILE fp constchar format address 功能 按格式对文件进行I O操作返值 成功 返回I O的个数 出错或文件尾 返回EOF 例 fprintf fp d 6 2f i t 将i和t按 d 6 2f格式输出到fp文件 fscanf fp d f 若文件中有3 4 5 则将3送入i 4 5送入t 例 从键盘按格式输入数据存到磁盘文件中 从磁盘文件按格式输入数据并显示 includemain chars 80 c 80 inta b FILE fp if fp fopen test w NULL puts can topenfile exit fscanf stdin s d s 20 9 5其他文件操作函数 文件位置指针 指向当前读写位置的指针读写方式顺序读写 位置指针按字节位置顺序移动随机读写 位置指针按需要移动到任意位置rewind函数函数原型 voidrewind FILE fp 功能 重置文件位置指针到文件开头返值 无fseek函数函数原型 intfseek FILE fp longoffset intwhence 功能 改变文件位置指针的位置返值 成功 返回0 失败 返回非0值 ferror函数函数原型 intferror FILE fp 功能 测试文件操作是否出现错误返值 未出错 0 出错 非0 21 小结 系统把文件当作一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论