欢迎来到天天文库
浏览记录
ID:40238310
大小:612.50 KB
页数:66页
时间:2019-07-28
《C++面向对象程序设计 李素若 杜华兵主著 c8》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章C++流库与输入输出8.1C++为何建立自己的输入输出系统因为在C++中用户需要定义众多的自定义类型,但是C语言的输入输出系统不支持用户自定义的类型。请看下面的类:classmy_class{inti;floatf;char*str;}obj;对此类类型,在C语言中下面的语句是不能接受的:printf("%my_class",obj);C++的流类比C的输入输出函数具有更大的优越性。8.2C++的流库及其结构8.2.1C++的流在C++中,流类是为输入输出提供的一组类,它们都放在流库中。流总是与某一设备相联系的(例如键盘、屏幕或硬盘等),通
2、过使用流类中定义的方法,就可以完成对这些设备的输入输出操作。流具有方向性:与输入设备(如键盘)相联系的流称为输入流;与输出设备(如屏幕)相联系的流称为输出流;与输入输出设备(如磁盘)相联系的流称为输入输出流。C++中包含几个预定义的流对象,:标准输入流cin与标准输入设备相关联标准输出流cout与标准输出设备相关联非缓冲型的标准出错流cerr与标准错误输出设备相关联(非缓冲方式)缓冲型的标准出错流clog与标准错误输出设备相关联(缓冲方式)在缺省情况下,指定的标准输出设备是屏幕,标准输入设备是键盘。8.2.1C++的流8.2.2流类库C++流
3、类库具有两个平行的基类,即streambuf类和ios类,所有其他的流类都是从它们直接或间接地派生出来的其中:ios类为输入输出操作在用户一方的接口,负责高层操作:streambuf类为输入输出操作在物理设备一方的接口,负责低层操作。8.3标准输入输出8.3.1标准流类1.标准输入与输出运算符在istream输入流类中定义有对输入运算符“>>”重载的一组公用成员函数,函数的具体声明格式为:istream&operator>>(系统预定义类型标识符&);(1)在缺省情况下,运算符“>>”将跳过空白符,然后读入后面与变量类型相对应的值。因此,给一组变量输
4、入值时可用空格或换行将键入的数据间隔开。如:inti;floatx;cin>>i>>x;在输入时只需输入下面形式:34123.568.3.1标准流类(2)当输入字符串(即类型为char*的变量)时,运算符“>>”将跳过空白,读入后面的非空白字符,直到遇到另一个空白字符为止,并在串尾加一个字符“ ”。因此,输入字符串遇到空格时,就当作本数据输入结束。如:char*str1;cin>>str1;当键入的字符串为:This_isaC++Program!则得到的结果是str1="This_is",后面的字符全被略去了。8.3.1标准流类(3)数据输入时,系
5、统除检查是否有空白外,还检查输入数据与变量的匹配情况。如对于语句:cin>>x>>y;//x为int型,y为float型若输入:342.78125.8得到的结果就不是预想的x=342.78,y=125.8,而是x=342,y=0.78。(4)在缺省情况下,运算符“>>”将跳过空白符,因此,对一组变量输入值时可用空格或换行将数值之间隔开。如:intx;floaty;cin>>x>>y;在输入数据时,可按下面形式输入:3567.248.3.1标准流类2.标准输出流与输出运算符ostream类定义了3个输出流对象,即cout,cerr,clog。分述如下。
6、(1)cout流对象。cout是consoleoutput的缩写,意为在控制台(终端显示器)的输出。用来处理标准输出,即屏幕输出。(2)cerr流对象。cerr流对象是标准错误流。cerr流已被指定为与显示器关联。(3)clog流对象。clog流对象也是标准错误流,它是consolelog的缩写。它的作用和cerr相同,都是在终端显示器上显示出错信息。8.3.1标准流类在ostream输出流类中定义有对输出运算符“<<”重载的一组公用成员函数,函数的具体声明格式为:ostream&operator<<(系统预定义类型标识符);(1)输出运算符“<<”
7、采用左结合方式工作,并且返回它的左操作数,因此,可以把多个输出组合到一起。如:intn=123;doublee=2.345;cout<<"n="<8、类中有关格式控制的成员函数进行格式控制;另一种是使用称为操纵符的特殊类型的函数进行格式控制。8.3.2格式控
8、类中有关格式控制的成员函数进行格式控制;另一种是使用称为操纵符的特殊类型的函数进行格式控制。8.3.2格式控
此文档下载收益归作者所有