c++14.pptVIP

  • 4
  • 0
  • 约7.4千字
  • 约 35页
  • 2016-11-22 发布于河南
  • 举报
c14

第14章 文件和流 Chapter Fourteen: Files and Streams The C++ input/output class hierarchy(C++输入/输出类层次结构) Opening a file(打开文件) File error checking(文件出错检查) Single character I/O and detecting the end of a file(单字符的I/O和文件末尾的检测) Appending data to the end of a file(向文件末尾添加数据) Random access(随机存取) Object I/O(对象I/O) Binary I/O(二进制I/O) 概述 输入/输出(input/output)是指程序与计算机的外部设备之间进行信息交换。 输入操作:指从指定设备收取一个字符序列。 输出操作:将一个对象转换为一个字符序列,输出到某一个设备。 输入输出操作:可以看成是字符序列在源和目的之间的流动。将执行这个输入/输出操作的类体系称为流类,提供这个流类实现的系统称为流类库。 在C++中,没有专门的输入/输出语句,为了方便用户灵活地完成输入/输出,C++提供了功能强大的输入/输出流类库。 C++的I/O系统为了向程序员提供一个统一的接口,使程序的设计尽可能地与所访问的具体设计无关,在程序员与被使用的设备之间提供一个抽象的概念-------流。 I/O流的概念 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。 程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。 读操作在流数据抽象中被称为(从流中获取)提取,写操作被称为(向流中添加)插入。 使用流的优点(与printf,scanf比较) (1)可以用其严格的类型检查机制,减少因使用不当引起的程序错误; (2)流是面向对象的,可以利用类的继承性和多态性,给用户提供统一的接口,实现更多的功能。 基本流类体系 C++中的流类体系在头文件“iostream”中作了说明。 类ios是类istream和类ostream的虚基类。 streambuf不是ios类的派生类,类ios中有一个指针成员指向类streambuf的一个对象。 类streambuf是用来管理一个流的缓冲区。 类iostream是类istream和类ostream的公有派生。 注:系统在主存中开辟一个专用的内存区域用来临时存放输入/输出信息,这种内存区域称为缓冲区。输入/输出流可以是缓冲的,也可以是非缓冲的。引入缓冲的目的是为了提高系统的效率。通常情况使用缓冲流。 预定义的标准流与提取和插入运算符 预先定义的四个流对象: cin 标准输入流 键盘(缓冲流) cout 标准输出流 显示器(缓冲流) cerr 标准错误输出流 显示器(没有缓冲,发送给它的内容立即被输出。) clog 标准错误输出流 打印机(但是有缓冲,缓冲区满时被输出。) 文件流 流是C++对所有的外部设备的逻辑抽象,而文件则是C++对具体设备的抽象。如一个源程序可以看成一个文件,一台显示器,一个数据结构等等都可以看成一个文件。把设备看成文件,用户只要掌握使用文件的方法,就可以使用具有不同特性的设备。 C++中,文件有两种含义:外部设备 磁盘文件 主要讨论磁盘文件的建立,打开,读写和关闭 The C++ input/output class hierarchy The C++ input/output class hierarchy 基类ios中有一些数据成员是用来描述状态的,例如输入/输出流对象是否处于打开状态,以及是否已经到达文件的末尾等。 派生类istream向基类添加了一些从流中读取数据的函数。它通过重载运算符来从流中读取内置数据类型(char、int、float等)的数据,从而提供基本的输入处理操作。流cin是派生类istream的对象,通常和键盘输入相关联。 派生类ostream中包含的一些成员函数可用于向流中输出数据。它通过重载运算符来向流中输出内置数据类型的数据,从而提供基本的输出处理操作。流cout是派生类ostream的对象,通常和屏幕输出相关联。 The C++ input/output class hierarchy ifstream是从istream派生的类,用于创建输入文件对象; ofstream是从ostre

文档评论(0)

1亿VIP精品文档

相关文档