- 1、本文档共149页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章C的IO流库_首都师范大学
第八章 C++ 的 I/O 流库;C++ 为什麽要建立自己的输入输出系统?
1 C 虽然具有一个灵活和功能强大的输入输出系统,
但它并不支持自定义类型。例如:
class account
{
char name[30];
double balance;
public:
account();
account(char*, double);
…
};; …
account acnt;
scanf(“%account”, acnt); // 错误,不支持 account 类型
account acnt1(John, 3000.0);
printf(“%account”, acnt1); // 错误,不支持 account 类型
…
因为输入函数 scanf 和输出函数 printf 的格式串形参
只能与系统预定义类型匹配,而无法识别用户的自
定义类型,并且也不能通过重载定义 scanf 和 printf
函数的新版本,使它们的格式串形参能匹配任意用
户自定义类型。;2 面向对象程序设计必须定义众多的用户自定义类,
如何以面向对象的设计原则和方法为自定义类设计
既规格统一,又??应个性化的输入输出操作行为是
十分必要的。因此 C++ 必须建立一个能通过对输入
输出操作重载的方法实现对任意自定义类型对象输
入输出支持的系统。;本章要点
1 C++ 流库结构
流库的概念、流库的组成。
2 标准输入输出流
输入输出流类的定义、输入输出运算符、输入输出
的格式控制。
3 自定义类的输入输出
输入输出运算符的重载。
4 文件的输入输出流
文件的打开、关闭和读写。
5 使用 MFC 的对话框类实现输入输出;8.1 C++ 流库结构
8.1.1 流库的概念
流(stream)是从源(数据的生产者)到目标(数
据的使用者)被传输数据的引用。每个流都是一个与
某种数据传输设备相关联的对象。
流具有方向性:
输入流是与输入设备(如键盘)关联的流。
输出流是与输出设备(如显示器屏幕)关联的流。
输入输出流是与输入输出设备(如磁盘)关联的流。;C++ 中包含的预定义流:
cin 输入流,与输入设备关联。
cout 输出流,与输出设备关联。
cerr 非缓冲型错误信息流,与错误输出设备关联;
clog 缓冲型错误信息流,与错误输出设备关联。
在缺省情况下,指定的输入设备是控制台键盘,输
出设备是控制台显示器终端。在任何情况下,指定的
错误输出设备总是控制台显示器终端。; cin 和 cout 的使用方法我们已经很熟悉了。cerr 和
clog 均是用来输出错误信息,它们的使用方法与 cout
基本相同,只不过它们所关联的设备始终是控制台显
示器,而不随着 cout 关联设备的改变而变化。cerr 和
clog 之间的区别是:
cerr 对输出的错误信息不缓冲,因而发送给它的任何内
容都立即输出。
clog 输出的错误信息被缓冲,当缓冲区满时才进行输
出,也可以通过刷新流的方式(遇到操纵符 endl
或 flush)强迫刷新缓冲区导致显示输出。; 下面给出一段使用预定义输入输出流信息的程序:
cout What was the total dollar amount of last month’s sales?;
cin sales;
cout How many units did you sell?;
cin num;
if (num == 0)
{ cerr The average can not be computed.\n; }
else
{
avgsales = sales / num;
cout The average selling price per nuit was ;
cout avgsales \n;
}; C++ 流库是用面向对象的设计方法建立起来的输入
输出类库,它具有两个平行的根基类 streambuf 和 ios,
库中所有其他的类均从它们直接或间接派生。系统中
预定义流,cin、cout、cerr、clog 都是流库中相应类的
对象。;8.1.2 streambuf 类
· streambuf 类是流库的根基类,它为输入输出物理设
备提供缓冲区和流处理的一些通用方法。
· C++ 将输入输出流均视为字节流,因此缓冲区是由
一个字符串和两个指针组成的。这两个指针分别指
向数据流在输入缓冲区中的插入位置和在输出缓冲
区的提取位置。
您可能关注的文档
最近下载
- 2024年时事政治题库及参考答案(100题).doc
- 2024年人教新课标小学数学知识点整理.doc
- 高中化学新教材选择必修3与旧版教材选修5对比分析.pdf VIP
- 生物人教版2024版七年级上册2.2.2 脊椎动物(鱼) 课件01.pptx VIP
- ISO27001信息安全管理体系信息安全风险评估表.pdf
- 宣讲“铸牢中华民族共同体意识”专题课件.ppt VIP
- NB_T 33018-2015 电动汽车充换电设施供电系统技术规范.pdf VIP
- 《教育家精神》全文课件.ppt
- 国开电大学习网国家安全教育(山东大学(威海))答案.pdf
- 学堂在线昆虫文化(安农)期末考试答案(65题卷).docx
文档评论(0)