- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 输入/输出流 10.1 输入/输出流概述 10.2 插入运算符及提取运算符 10.3 格式化输入输出 10.4 文件的输入输出 10.5 输入输出文件流fstream 10.1 输入/输出流概述 10.1.1 流的概念 “流”是一种抽象的形态,指的是计算机里的数据从一个对象流向另一个对象。这里数据流入和流出的对象通常是指计算机中的屏幕、内存、文件等一些输入输出设备。数据的流动就是由I/O流类来实现的。 如预定义流对象cin和cout实现的数据流动过程: C++中的I/O流负责建立程序与设备对象之间的连接,它像一个桥梁,沟通了数据的产生者和消费者,使他们之间产生数据的流动 。 10.1 输入/输出流概述 10.1.2 流类库的结构 10.1 输入/输出流概述 10.1.2 流类库的结构(续) 流类库中与文件输入输出相关的文件流类结构: 10.2 插入运算符与提取运算符 1. 插入运算符 插入运算符“”:通常用于插入数据到一个输出流对象中,流对象再进一步将数据输出到它所关联的设备中。 如:cout “Hello World!” 插入运算符“”适用于任何输出流对象,如输出文件流ofstream的对象等。“”右侧可以是任何标准数据类型的变量及常量,也可以是字符串变量及常量。 如:cout i ‘s’ 3.14 ‘ ’ f ; 10.2 插入运算符与提取运算符 2. 提取运算符 提取运算符“”:通常用于从输入流对象中提取数据。 如: int i; char buf[100]; cin i ; cin buf ; 提取运算符“”适用于任何输入流对象,如输入文件流ifstream的对象等。“”右侧可以是任意标准数据类型的变量,也可以是字符串变量。 注意:使用提取运算符“”提取数据时,以空白符(如空格、回车、tab)作为数据的分割符,因此提取字符串数据时,不能提取空白字符。 10.3 格式化输入输出 C++中的I/O流可以完成输出/输入的格式化操作,如设置域宽、设置精度及整数进制等。 设置输入输出格式的方法: 使用流操纵元,只需把流操纵元插入(提取)到输出流(输入流)中即可对输出流(输入流)进行格式化,如setiosflags、setw、setfill、setprecision、hex、oct等,使用流操纵元时需在程序中包含头文件iomanip.h 通过流的成员函数,即由流对象直接调用完成格式化,如setf、unsetf、width、fill、precision等。使用流成员函数的优点是在设置格式同时,可以返回以前的设置,便于恢复原来的设置。 10.3 格式化输入输出 10.3.1 输出宽度控制:setw和width 使用流操纵元setw和成员函数width可以控制当前域宽(即输入/输出的字符数)。 注意: (1) 宽度的设置仅适用于下一个插入或读取的数据。 (2) 在输出流中控制域宽,如果输出数据的宽度比设置的域宽小,将以默认右对齐方式输出数据,左边空位会用填充字符来填充(填充字符默认是空格)。 (3) 如果输出数据的宽度比设置的宽度大,数据不会被截断,将输出所有位数。 例10.1 使用setw操纵元控制域宽 # include iostream.h # include iomanip.h void main( ) { cout 123 endl; cout setw(5) 4.5 6.7 endl; } 例10.2 使用width成员函数控制域宽 # include iostream.h void main( ) { char * str[3] = {“abc”, “abcde”, “abcdef”}; for (int i = 0; i 3; i ++ ) { cout.width(5); cout str[i] endl; } } 10.3 格式化输入输出 10.3.2 填充字符控制:setfill和fill 在缺省情况下,如果域宽大于数据宽度时,填充多余空间的字符是空格。如果要改变填充字符,可以使用流操纵元se
文档评论(0)