C的IO流库-首都师范大学

C的IO流库-首都师范大学

ID:45057778

大小:672.00 KB

页数:149页

时间:2019-11-08

C的IO流库-首都师范大学_第1页
C的IO流库-首都师范大学_第2页
C的IO流库-首都师范大学_第3页
C的IO流库-首都师范大学_第4页
C的IO流库-首都师范大学_第5页
资源描述:

《C的IO流库-首都师范大学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章C++的I/O流库C++为什麽要建立自己的输入输出系统?1C虽然具有一个灵活和功能强大的输入输出系统,但它并不支持自定义类型。例如:classaccount{charname[30];doublebalance;public:account();account(char*,double);…};…accountacnt;scanf(“%account”,&acnt);//错误,不支持account类型accountacnt1(John,3000.0);printf(“%account”,acnt1);//错误,不支持account类型…因为输入函数scanf和输出函数p

2、rintf的格式串形参只能与系统预定义类型匹配,而无法识别用户的自定义类型,并且也不能通过重载定义scanf和printf函数的新版本,使它们的格式串形参能匹配任意用户自定义类型。2面向对象程序设计必须定义众多的用户自定义类,如何以面向对象的设计原则和方法为自定义类设计既规格统一,又适应个性化的输入输出操作行为是十分必要的。因此C++必须建立一个能通过对输入输出操作重载的方法实现对任意自定义类型对象输入输出支持的系统。本章要点1C++流库结构流库的概念、流库的组成。2标准输入输出流输入输出流类的定义、输入输出运算符、输入输出的格式控制。3自定义类的输入输出输入输出运算符的重载

3、。4文件的输入输出流文件的打开、关闭和读写。5使用MFC的对话框类实现输入输出8.1C++流库结构8.1.1流库的概念流(stream)是从源(数据的生产者)到目标(数据的使用者)被传输数据的引用。每个流都是一个与某种数据传输设备相关联的对象。流具有方向性:输入流是与输入设备(如键盘)关联的流。输出流是与输出设备(如显示器屏幕)关联的流。输入输出流是与输入输出设备(如磁盘)关联的流。C++中包含的预定义流:cin输入流,与输入设备关联。cout输出流,与输出设备关联。cerr非缓冲型错误信息流,与错误输出设备关联;clog缓冲型错误信息流,与错误输出设备关联。在缺省情况下,指

4、定的输入设备是控制台键盘,输出设备是控制台显示器终端。在任何情况下,指定的错误输出设备总是控制台显示器终端。cin和cout的使用方法我们已经很熟悉了。cerr和clog均是用来输出错误信息,它们的使用方法与cout基本相同,只不过它们所关联的设备始终是控制台显示器,而不随着cout关联设备的改变而变化。cerr和clog之间的区别是:cerr对输出的错误信息不缓冲,因而发送给它的任何内容都立即输出。clog输出的错误信息被缓冲,当缓冲区满时才进行输出,也可以通过刷新流的方式(遇到操纵符endl或flush)强迫刷新缓冲区导致显示输出。下面给出一段使用预定义输入输出流信息的程

5、序:cout<<"Whatwasthetotaldollaramountoflastmonth’ssales?";cin>>sales;cout<<"Howmanyunitsdidyousell?";cin>>num;if(num==0){cerr<<"Theaveragecannotbecomputed.";}else{avgsales=sales/num;cout<<"Theaveragesellingpricepernuitwas";cout<

6、buf和ios,库中所有其他的类均从它们直接或间接派生。系统中预定义流,cin、cout、cerr、clog都是流库中相应类的对象。8.1.2streambuf类·streambuf类是流库的根基类,它为输入输出物理设备提供缓冲区和流处理的一些通用方法。·C++将输入输出流均视为字节流,因此缓冲区是由一个字符串和两个指针组成的。这两个指针分别指向数据流在输入缓冲区中的插入位置和在输出缓冲区的提取位置。streambuf类提供对缓冲区的底层操作,例如设置缓冲区、对缓冲区指针进行操作、从缓冲区取字节、向缓冲区存储字节等。streambuf类有三个派生类,filebuf类、strs

7、treambuf类和conbuf类。它们的派生层次关系如图所示:⑴filebuf类扩展了streambuf类的功能,用于文件流与文件缓冲区相关联,实现对文件缓冲区中的字节序列的读写操作:①写文件:缓冲区内容按字节写到指定的文件中,然后刷新缓冲区。②读文件:指定文件内容按字节读到缓冲区中。③打开文件:filebuf与被读或写的文件相关联。streambufstrstreambuffilebufconbuf④关闭文件:filebuf与被读或写的文件解除关联。⑵strstreambuf类扩展了streambu

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

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

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