- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浙大《面向对象程序设计》 - 奥鹏教育
浙大《面向对象程序设计》第七章 C++的I/O流类库 课堂笔记
主要知识点掌握程度
了解C++的流及流类库的概念。学习C++语言中能控制输入输出格式的二种控制方法。学习C++语言中把内存数据写到磁盘成为文件,或从磁盘文件中读数据到内存中的方法。 C++为何建立自己的输入输出系统,C++的流及流类库。 输入输出的格式控制用ios 类的成员函数进行格式控制用操作符进行输入输出格式控制 自定义类型的输入输出,重载输出运算符“”,重载输入运算符“”。 顺序文件的输入输出:文本文件的读写,二进制文件的读写。 随机文件的读写,随机移动文件指针。C++为何建立自己的输入输出系统
C++除了完全支持C 语言的输入输出系统外,还定义了一套面向对象的输入输出系统。为什么C ++还要建立自己的输入输出系统呢?C 语言的输入输出系统不支持用户自定义的对象,
如:
struct my_struct{
int i;
float f;
char *str;
}s;
对此结构类型,在C语言中下面的语句是不能接受的:
printf(“%my_struct”,s);
因为printf( )函数只能识别系统预定义的类型,而没有办法对新的数据类型进行扩充.。用C++的输入输出系统,就可以通过重载“”和“”运算符来解以上问题。 C++的类机制允它建立一个可扩展的输入输出系统,它可以通过修改和扩展来加入用户自定义类型及相应操作。
二、C++的流及流类库
(一)C++的流
输入输出是一种数据传递操作,它可以看作字符序列在主机与外部介质 之间的流动。流(stream)为从源(或生产者)到目的(或消费者)的数据流的引用。流具有方向性: 与输入设备(如键盘)相联系的流称为输入流;与输出设备(如屏幕)相联系的流称为输出流;与输入输出设备(如磁盘)相联系的流称为输入输出流。
C++中包 含几个预定义的流 :
标准输入流 cin 与标准输入设备相关联
标准输出流 cout 与标准输出设备相关联
非缓冲型标准出错流 cerr 与标准错误输出设备相关联(非缓冲方式)
缓冲型的标准出错流 clog 与标准错误输出设备相关联(缓冲方式)
在默认情况下,指定的标准输出设备是显示终端,标准输入设备是键盘。
在任何情况下(有时用户 把标准输出设备定向为其它设备),指定的标准错误输出设备总是显示终端。
cerr“The average cannot be computed.\n”;
(二)流类库
C++流类库是用继承方法建立起来的一个输入输出类库。它具有两个平行的基类:streambuf 类, ios 类。所有其它的流类都是从它们直接或间接地派生出来的。使用C++的流类库,程序中可能应包含的头文件:
iostream.h strstream.h fstream.h iomanip.h
1. streambuf 类
2. ios 类
预定义类型的输入输出
(一)无格式输入输出
cin 变量;
cout 常量或变量;
cin.operator (变量);
cout.operator (常量或变量);
输入流对象cin和输出流对象cout对运算符“”和“”的重载函数的调用。
1. 输出运算符“”
可组合。
2. 输入运算符“”
字符串以空格结束。
(二)输入输出的格式控制
1. 用ios 类的成员函数进行格式控制
ios类中有几个成员函数可以用来对输入输出进行格式控制。
主要控制
1). 状态标志字
状态标志存放在数据成员 long x_flags ios 类 public 中定义了一个枚举,它的每个成员可以分别定义状标志字的一个位,每一位都称为一个状标志位。
2). ios类中用于控制输入输出格式的成员函数
设置状态标志
设置状态标志,即是将某一状态标志位置“1”,可使用setf()函数
其一般的调用格式为:流对象.setf(ios::状态标志);
例7.1
#includeiostream.h
main()
{ istream cin; //对象cin可不定义
ostream cout; //对象cout可不定义
cin.setf(ios::shipws);
您可能关注的文档
- 武汉理工大学《集成电路软件设计》课程设计说明书 摘要 电子技术的 .doc
- 正职与兼职员工在服务态度与工作绩效表现之探讨 - 中央大学人力资源 .pdf
- 歧视知觉对城市流动儿童幸福感的影响: 中介机制及归属需要的调节作用.pdf
- 段考 - 育德工家.doc
- 正向管教,培养自尊自信的孩子 - 天佑小学.pdf
- 武汉大学“技术经济及管理” - 武汉大学经济与管理学院.doc
- 母育信心概念分析.doc
- 残疾人生活满意度调查与分析 - 中国残疾人联合会.pdf
- 比喻、拟人、夸张、对比、对偶.ppt
- 比较实体与虚拟环境消费者对山寨机之态度 - 崇越论文大赏.pdf
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)