由浅入深学visual c第4章输入输出流库iostream_第1页
由浅入深学visual c第4章输入输出流库iostream_第2页
由浅入深学visual c第4章输入输出流库iostream_第3页
由浅入深学visual c第4章输入输出流库iostream_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第4章输入输出流库(iostream库)C++系统为开发者提供了一套完整的输入/输出(I/O)操作体系,这些I/O操作可以操作C++的内置类型的数据,也可以操作用户自定义类型的数据。本章介绍C++的输入输出流库iostream,并通过两个实例为例,讲解输入输出流库的应用。通过本章的学习,读者可以了解C++类库中的常用流类,掌握输入/输出的格式控制、文件操作和输入输出在C++程序中的应用。4.1概述与C一样,C++不提供内置的输入输出功能。在程序中可以使用printf()和scanf()这两个标准的C++输入输出函数来完成输入输出功能(第3章中的示例就是使用的这种方式)。4.2输入输出流输入输出流类iostream是基于字节的数据流,它既可以是数据源,也可以是数据目的地,它是文件流和字符串流的基类。输入输出流类包括istream输入流、ostream输出流和iostream输入输出流类。本节就分别介绍输入流类、输出流类和输入输出流类,并介绍预定义输入输出流类的使用。4.2.1输入流类输入流类(istream)是表示数据字节流来源的类。它提供了顺序访问输入和随机访问输入的基本功能。istream类有与之相连的流缓冲区streambuf类,这两个类一起完成输入流的操作。其中istream类用来完成格式化功能,streambuf类用来完成底层输入缓冲功能。4.2.2输出流类输出流类是表示字节数据流去向的类。输入输出流库中有ostream类、ofstream类和ostrsteam类三个主要的输出流类,这三个输出流类分别用来实现标准输入流、文件数据流和字符串输出流。一般情况下,不会直接从ostream或ostream_withassign类派生输出流类,而是使用预定义输出流类。用户可以设置ostream类进行缓冲操作或非缓冲操作,而ostream类比较适合操作顺序文本输出数据流。4.2.3预定义输入输出流类前面两节介绍了输入流类和输出流类。但是,一般情况下,不会直接使用这两个类操作输入输出流类。iostream库为用户提供了预定义的输入输出流对象,用户在程序中可以直接使用这些预定义输入输出流对象,从默认输入流中读取数据,向默认的输出流中输出数据。4.3输入输出文件流在上一小节中介绍了输入流类和输出流类以及预定义的输入输出流类,这些类都是用来处理通用的流输入输出功能。本节介绍有关文件操作方面的输入输出流类。首先介绍输入流类及示例、输出流类及示例,在第三小节中结合输入文件流和输出文件流类讲解输入输出文件流的使用。4.3.1输入文件流类及示例输入输出流库提供了ifstream类来实现磁盘文件输入功能。如果需要对磁盘文件进行只读操作,则可以使用ifstream对象初始化到指定文件中,并且可以指定将文件中的数据作为二进制数据操作还是作为文本数据来操作。如果使用ifstream类,则必须将数据流与指定的磁盘文件关联起来。4.3.2输出文件流类及示例输入输出流库提供了ofstream类实现磁盘文件输出功能。如果用户只需要将数据输出到磁盘上,则构造一个ofstream即可。使用此类可以指定ofstream对象是以二进制方式访问数据还是以文本方式访问数据。类ofstream除了包括ios类和ostream类所有的功能外,还有一些专有的格式化选项和成员函数。4.3.3输入输出文件流类及示例结合输入文件流类和输出文件流类,输入输出流库提供了同时支持磁盘文件输入和输出功能的fstream类。如果用户需要在同一个程序中从磁盘文件中读取数据和向磁盘文件输出数据时,就需要使用输入输出文件流fstream对象。输入输出文件流对象是一个具有两个逻辑子流的单个流,一个用来作为输入流,一个用来作为输出流。4.4示例-顺序文件操作顺序文件是指在向文件中存储数据时,按照写入的顺序存储内容,而不对文件内容进行任何处理。顺序文件的优点是读写速度快,缺点是查询效率低。4.5示例-随机文件操作从上一节中可以看出,顺序文件的查询效率非常低,即使经过算法优化,也无法实现高效的

温馨提示

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

评论

0/150

提交评论