- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                C第2版7-修改版
                       第七章  C++的I/O流类库                7.1  C++为何建立自己的输入输出系统       7.2  C++的流及流类库       7.3  预定义类型的输入输出       7.4  用户自定义类型的输入输出       7.5  文件的输入输出      7.1 C++为何建立自己的输入输出系统    (1) C的类型检查机制相对较弱,C++的编译系统加强了对数据类型的检查,提高了输入输出的安全性。     例如:              int i;         float f;          …..         scanf("%f",i);         printf("%d",f);     C语言编译系统认为以上语句是合法的。    (2)在C++中需要定义众多的用户自定义类型(如结构体、类等),但是使用C语言中的printf和scanf是无法对这些数据进行输入输出操作的。      请看下面的例子:       class my_class{    int i;    float f;    char *str;     // .. ..  };      my_class  obj;  //.. .. prinf("% my_class",obj);  7.2  C++的流及流类库                   1. C++的流               2. 流类库     7.2.1 C++的流    在C++中, 流可以看作是一种既有数据,又有操作,与设备相联糸的对象,即流对象。   与输入设备(如键盘)相联系的流(流对象)称为输入流(流对象);   与输出设备(如屏幕)相联系的流(流对象)称为输出流(流对象);   与输入输出设备(如磁盘)相联系的流(流对象)称为输入流出流(流对象)。         C++中包含几个预定义的流(流对象) ,它们是:  .标准输入流 (流对象) cin  .标准输出流(流对象) cout  .非缓冲型的标准出错流 (流对象) cerr  .缓冲型的标准出错流 (流对象) clog    (1) cin----标准输入流(流对象), 与标准输入设备相关联(在缺省情况下指键盘)。    例如:  cin变量名;     “”为提取运算符(输入运算符),表示从键盘读取数据放入变量中。    (2) cout---标准输出流(流对象), 与标准输出设备相关联(在默认情况下指屏幕)。     例如: cout“数据”;     “”为插入运算符(输出运算符),表示将“数据”写到屏幕上。   (3) cerr---非缓冲型的标准出错流,与标准输出设备屏幕相关联。   (4)  clog---缓冲型的标准出错流,与标准输出设备屏幕相关联。   cerr与clog均用来输出出错信息。   cerr和clog之间的区别是:   cerr没有被缓冲,因而发送给它的任何内容都立即输出;   clog被缓冲,只有当缓冲区满时才进行输出。     下面的代码能检测用户所输入的数值并显示出相应的错误信息。  cinnum;  if (num==0)  { cerrThe average cannot be                   computed.\n";}  else  { avgsales=sales/num;    coutavgsales"\n";  }    7.2.2 流类库   对流对象进行抽象就得到流类.   C++流类库(即流库)是用继承方法建立起来的一个输入输出类库.     C++流类库具有两个平行的基类:    (1) streambuf类    (2) ios类    所有其他的流类都是从它们直接或间接地派生出来的。   1. streambuf 类     为输入输出操作在物理设备一方的接口,负责一些低层操作。如设置缓冲区、对缓冲区指针进行操作、从缓冲区取字符、向缓冲区存储字符等。       streambuf类,主要用作流类库的其他部分使用的基类。    streambuf类可以派生出三个类:    . filebuf类    . strstreambuf类    . conbuf类。      filebuf类,使用文件来保存缓冲区中的字符序列。     strstreambuf类,提供了在内存中进行输入和输出操作的缓冲区管理。     conbuf类,用于处理输出,如控制光标、设置颜色、定义活动窗口、清屏、清一行等功能。      2. ios类    ios类为输入输出操作在用户一方的接口,负责一些高层操作。    ios作为流类库中的一个抽象基类,可以派生出许多类,     其类层次图如图
                 原创力文档
原创力文档 
                        

文档评论(0)