第九章的焦点是C++程序设计中的流类库和输入输出机制。C++语言并不直接支持输入输出语句,而是依赖于一个强大的流类库,该库是C++标准库的核心部分,与标准模板库同等重要。数据在不同对象间的传输被抽象为“流”,而输入/输出操作则通过输入/输出流来实现。 流是一种抽象概念,其作用在于建立数据产生者和使用者之间的桥梁,管理数据的流动。C++中的流类体系以抽象类模板`basic_ios`为基础,派生出一系列流类,如`basic_istream`用于输入,`basic_ostream`用于输出,而`basic_iostream`是两者的组合,但并未添加额外的成员。这些主要的流类都在头文件`<iostream>`中声明,其中包含了`<ios>`、`<streambuf>`、`<istream>`和`<ostream>`。输入输出文件流的相关类则在`<fstream>`头文件中定义。 `basic_ios`类模板提供了格式化输入输出和错误处理的函数。`basic_istream`和`basic_ostream`分别提供了提取(输入)和插入(输出)操作的成员函数。`basic_streambuf`是一个独立的类,它管理流的缓冲区,不是直接从`basic_ios`派生,但`basic_ios`有一个指针指向它以进行访问。 在C++的流类库中,有四个预定义的全局流对象:`cin`、`cout`、`cerr`和`clog`。`cin`用于标准输入,对应键盘;`cout`用于标准输出,对应显示器;`cerr`和`clog`是标准错误输出,同样输出到显示器,但`cerr`不使用缓冲区,错误信息会立即显示。使用这些流对象需要包含`<iostream>`头文件。 输入/输出操作通常通过重载的提取运算符`>>`和插入运算符`<<`来实现。提取运算符用于输入操作,从流中读取字符序列;插入运算符用于输出操作,将字符序列写入流。对于文件处理,这是实现数据持久存储的关键,C++提供了丰富的文件I/O功能,不同平台可能有不同的扩展,如VC++中的MFC编程中的序列化技术。 此外,C++还提供了输入输出的格式控制。`ios_base`类中定义了一些格式控制符,如`skipws`、`left`、`right`、`internal`、`dec`、`oct`和`hex`等,它们分别控制跳过空白、对齐方式和数值的进制表示。这些格式控制符适用于所有文本模式的输入输出流,使得程序员能够灵活地控制数据的格式化显示和读取。 C++的流类库为输入输出提供了强大的支持,包括基本的流类体系、预定义的流对象、重载的输入输出运算符以及格式控制,使得开发者能够高效、灵活地进行数据的输入输出处理,无论是人机交互还是文件操作。通过深入理解这些概念和机制,开发者可以编写出更加高效和健壮的C++程序。
剩余63页未读,继续阅读
- 粉丝: 3834
- 资源: 59万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助