C程序设计(第二版)第九章流类库与输入输出

C程序设计(第二版)第九章流类库与输入输出

ID:45057934

大小:529.00 KB

页数:79页

时间:2019-11-08

C程序设计(第二版)第九章流类库与输入输出_第1页
C程序设计(第二版)第九章流类库与输入输出_第2页
C程序设计(第二版)第九章流类库与输入输出_第3页
C程序设计(第二版)第九章流类库与输入输出_第4页
C程序设计(第二版)第九章流类库与输入输出_第5页
资源描述:

《C程序设计(第二版)第九章流类库与输入输出》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章流类库和输入/输出本章的最主要目的就是把对象保存到磁盘文件中并从磁盘文件重建对象。C++语言中并没有输入/输出语句,而是在标准库里包含了一个I/O流类库,它与标准模板库同为C++标准库中最重要的组成部分。数据从一个对象到另一个对象的传送被抽象为“流”。数据的输入/输出就是通过输入/输出流来实现的。流是一种抽象的概念,负责在数据的产生者和数据的使用者之间建立联系,并管理数据的流动。第九章流类库和输入/输出9.1C++的基本流类体系9.3标准设备的输入/输出9.2输入输出的格式控制(选读)9.4文

2、件的输入与输出9.5字符串流(选读)9.6文件与对象9.1C++的基本流类体系流类体系:以抽象类模板basic_ios为基类,流类模板派生体系见图9.1。整个流类模板体系的标准I/O在头文件中说明,它包含头文件。而输入输出文件流部分在头文件中说明。图9.1主要输入/输出流模板层次basic_iosbasic_streambufbasic_istreambasic_ostreambasic_

3、ifstreambasic_iostreambasic_ofstreambasic_fstream指针9.1C++的基本流类体系basic_ios类模板提供了对流进行格式化输入输出和错误处理的成员函数。所有派生都是公有派生。basic_istream类模板提供完成提取(输入)操作的成员函数,而basic_ostream类模板提供完成插入(输出)操作的成员函数。basic_iostream类本质上是前两者的聚合,并没有增加成员。派生全部为公有派生。有关模板派生请参见教学指导书第8章中“类模板的派生的讨

4、论”basic_streambuf不是basic_ios的派生类,而是一个独立的类,只是basic_ios有一个保护访问限制的指针指向它。类basic_streambuf的作用是管理一个流的缓冲区。流类体系说明:9.1C++的基本流类体系标准输入/输出流对象:在C++的流类库中定义了四个全局流对象:cin,cout,cerr和clog。可以完成人机交互的功能。cin标准输入流对象,键盘为其对应的标准设备。cout标准输出流对象,显示器为标准设备。cerr和clog标准错误输出流,输出设备是显示器。其

5、中cin、cout和clog是带缓冲区的,缓冲区由streambuf类对象来管理。而cerr为非缓冲区流,一旦错误发生立即显示。要使用这四个功能,必须包含文件。9.1C++的基本流类体系重载的提取运算符“>>”(stream_extractionoperator)和插入运算符“<<”(stream_insertionoperator),执行输入/输出操作。“提取”的含义是指输入操作,可看作从流中提取一个字符序列。“插入”的含义是指输出操作,可看作向流中插入一个字符序列。cin使用

6、提取运算符。cout、cerr和clog使用插入运算符。文件:文件处理完成永久保存的功能。在Windows下不同的C++平台,都为文件功能作了扩充,在VC++的MFC编程中采用了序列化(Serialization)。提取运算符和插入运算符:9.2输入输出的格式控制(选读)enum{skipws=0x0001,//跳过输入中的空白字符left=0x0002,//输出左对齐right=0x0004,//输出右对齐internal=0x0008,//在输出符号或数制字符后填充dec=0x0010,//在输

7、入输出时将数据按十进制处理oct=0x0020,//在输入输出时将数据按八进制处理hex=0x0040,//在输入输出时将数据按十六进制处理格式控制符:C++在类ios_base中提供格式化输入输出。这些格式是对所有文本方式的输入输出流均适用。格式控制符定义为公有的无名枚举类型,在VC++6.0中定义为:9.2输入输出的格式控制(选读)showbase=0x0080,//在输出时带有表示数制基的字符showpoint=0x0100,//输出浮点数时,必定带小数点uppercase=0x0200,//

8、输出十六进制,用大写showpos=0x0400,//输出正数时,加”+”号scientific=0x0800,//科学数方式输出浮点数fixed=0x1000,//定点数方式输出实数unitbuf=0x2000,//插入后,立即刷新流stdio=0x4000}//插入后,立即刷新stdout和stderr对不同的C++平台,枚举常量名相同,但所取值及枚举类型名不一定相同。后文的枚举常量也是如此。为保证通用性,实际只用枚举常量名而不用数值空白字符包括:空格、制表、垂直

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。