C语言程序设计 第11章.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计第11章ppt整理

华中科技大学计算机学院 第11章 文件的输入与输出 11.1 文件概述 1.文件的概念 文件分类 文件按照数据格式分为文本文件和二进制文件两类。 文本文件是由字符的ASCII码组成的数据文件。 二进制文件则是完全按照数据对象在内存中存储时的格式组成的数据文件。 文本文件可以在文本编辑环境下(如TC、VC的编辑环境、写字板、记事本,甚至如本书例8-34 简单的行文本编辑器)创建,阅读,编辑,修改;也可以从键盘终端输入,由显示终端或打印机输出。 二进制文件则不能通过文本编辑器创建、阅读、修改,只能通过程序创建、阅读、修改;也不能从键盘终端输入或由显示终端、打印机输出。 2.文本文件 在文本文件中,单个字符的ASCII码是文本文件数据的基本组成单位。 对文本文件的操作可以是单个字符的输入和输出,字符串的输入和输出,格式化的输入和输出。 无论采用什么方式对文本文件进行输入输出操作,数据都将按照写入文件的先后顺序以ASCII码形式存放。 存储时字符串后面的’\0’以及文本行后面的换行符’\n’都被忽略。两个输入行之间插入0x0D(回车符)、0x0A(换行符)。 解释p400 例11.1 (用c:\copy con abc.dat命令产生) 3.二进制文件 在二进制文件中,每个字节都是对应数据在内存中存放时的表现形式,不同数据有不同的存储长度,不同的存储格式。 在读写二进制文件文件时一定要注意读写数据的格式。如:读出的整型数据一定要赋给整型变量,读出的字符型数据一定要赋给字符型变量,读出的浮点型数据一定要赋给浮点型变量,等等。解释p401 例11.2 4.文件的读写方式 C对文件的读写方式有顺序读写和随机读写两种。 文件的顺序读写:每次打开文件时文件读写指针都指向文件的起始位置,读写操作必须从文件的起始位置开始;并且每次读写数据后读写指针会自动指向下一个数据,因此适合对文件中的所有数据进行逐一处理。 文件的随机读写:对文件进行读写操作时可以先通过计算,调用相关函数将读写指针快速的移动到指定的位置,再进行读写操作。因此特别适合只需要对文件中间的某些数据进行读写操作的场合。最典型的应用就是对汉字库文件的读操作。 5.C程序输入输出的实现方法 C程序输入输出的实现方法有两种: 一是通过调用编译系统提供的关于输入输出的标准库函数来实现; 另外一种就是直接调用操作系统提供有关文件操作的底层I/O接口函数来实现。 前者称为C的标准I/O,后者称为C的底层I/O。 C的标准I/O由标准C规定。如C语言标准ISO/IEC 9899:1999 (E)中第7章Library)中Input/output一节,就定义了流、文件的概念,规定了对文件的操作,以及从文件访问、格式化的输入/输出、字符输入/输出、直接输入/输出、读写指针操作、出错处理六个方面精确的给出各个函数的原型和操作语义的定义。 任何C编译系统都支持C的标准I/O,都会提供标准规定的各种输入输出的库函数。使用这些函数进行文件的I/O操作,可以使程序具有良好的可移植性。 基于流(stream)的输入输出 C的标准I/O是一种基于流(stream)的输入输出。流是一种抽象或映射。 C将各种输入输出的终端设备,磁带机,或者各种类型的磁盘等都统一的映射成为C的逻辑层面的(数据)流。 程序员只需要按照标准I/O提供的库函数对流进行I/O操作,就可以完成数据的输入输出。至于流中的数据是如何到硬盘、终端、打印机、串行口等则由编译系统和设备驱动程序完成,与程序员无关。 因此,流的概念的引入和针对流操作的库函数的提供,使程序员从原本繁重的,需要在物理层面进行的I/O操作,变成简单、方便的对流的操作。对程序员而言是一种解放,对软件设计而言是生产力的提高。 文本流和二进制流 在C语言中存在两种类型的流。一种是文本流,一种是二进制流。 文本流对应的文件是文本文件。 在文本流中,字符按顺序组成文本行,每个文本行包含零个或多个字符,并且都以换行符符结束。另外一种是二进制流,对应的文件是二进制文件。 在二进制流中对应的文件是二进制文件。 在二进制流中,数据按照顺序以二进制字节的形式存放,数据的二进制字节与它们在内存中存储时的格式和形式一致。并且,从二进制流中读取数据应该与它们先前写入到流中的格式一致。二进制流以空(NULL)作为终结符。 输入输出重定向 通过freopen函数或fwide函数可以改变流的方向,这通常称为输入输出重定向。 流对应的文件称为流式文件,实现流式文件的基础是构造缓冲区,流存在于缓冲区之中,缓冲区是连接程序的I/O数据与外设文件之间的桥梁。 程序从流中读取数据实际上是从缓冲区中读取数据;程序向流中写数据也是向缓冲区中写数据。当缓冲区中的数据被读空,或缓冲区中已写满数

文档评论(0)

zyzsaa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档