欢迎来到天天文库
浏览记录
ID:50297342
大小:218.50 KB
页数:53页
时间:2020-03-07
《C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第9章 C++的输入和输出.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章C++的输入和输出9.1C++为何建立自己的输入输出系统因为在C++中用户需要定义众多的自定义类型,但是C语言的输入输出系统不支持用户自定义的类型。请看下面的类:classmy_class{inti;floatf;char*str;}obj;对此类类型,在C语言中下面的语句是不能接受的:printf("%my_class",obj);C++的流类比C的输入输出函数具有更大的优越性。9.2C++的流库及其基本结构9.2.1C++的流在C++中,流类是为输入输出提供的一组类,它们都放在流库中。流总是与某一设备相联系的(例如键盘、屏幕或硬盘等),通过
2、使用流类中定义的方法,就可以完成对这些设备的输入输出操作。流具有方向性:与输入设备(如键盘)相联系的流称为输入流;与输出设备(如屏幕)相联系的流称为输出流;与输入输出设备(如磁盘)相联系的流称为输入输出流。C++中包含几个预定义的流对象,:标准输入流cin与标准输入设备相关联标准输出流cout与标准输出设备相关联非缓冲型的标准出错流cerr与标准错误输出设备相关联(非缓冲方式)缓冲型的标准出错流clog与标准错误输出设备相关联(缓冲方式)在缺省情况下,指定的标准输出设备是屏幕,标准输入设备是键盘。9.2C++的流库及其基本结构9.2.2流类库C+
3、+流类库具有两个平行的基类,即streambuf类和ios类,所有其他的流类都是从它们直接或间接地派生出来的其中:ios类为输入输出操作在用户一方的接口,负责高层操作:streambuf类为输入输出操作在物理设备一方的接口,负责低层操作。9.3预定义类型的输入输出9.3.1无格式输入输出基于C++类库的输入输出需使用两个流对象cin和cout,还要用与之相配套的两个输入输出运算符“>>”和“<<”,其一般的格式为cin>>变量;//输人cout<<常量或变量;//输出cin.operator>>(变量);cout.operator<<(常量或变量);1.
4、输出运算符从运算符角度来看,输出通过输出运算符“<<”来完成的,输出运算符“<<”也称插入运算符,它是一个双目运算符,有两个操作数,左操作数为ostream类的一个对象(如cout),右操作数为一个系统预定义类型的常量或变量。例如cout<<"Thisisastring.";完成的功能为写字符串“Thisisastring.”到流对象cout,cout为标准输出流,通常为屏幕。9.3预定义类型的输入输出2.输入运算符从运算符角度来看,输入操作通过输入运算符“>>”来完成。输入运算符“>>”也称提取运算符,它也是一个双目运算符,有两个操作数,左面的操作
5、数是istream类的一个对象(cin),右面的操作数是系统预定义的任何数据类型的变量。例如:intx;cin>>x;此时,用户从键盘输入的数值会自动地转换为变量x的类型,并存入变量x内。9.3预定义类型的输入输出说明:(1)在缺省情况下,运算符“>>”将跳过空白符,然后读入后面与变量类型相对应的值;(2)当输入字符串时,将跳过空白,读入非空白字符,直到遇到另一个空白字符为止;(3)检查输入数据与变量类型匹配情况。(4)缺省情况可用空白或换行将数值之间分隔。9.3预定义类型的输入输出9.3.2格式化输入输出C++提供了两种进行格式控制的方法:一种是使用i
6、os类中有关格式控制的成员函数进行格式控制;另一种是使用称为操纵符的特殊类型的函数进行格式控制。9.3预定义类型的输入输出1.用ios类的成员函数进行格式控制格式控制主要是通过对状态标志字的操作来完成的。在ios类的public部分定义了一个枚举,它的每个成员分别定义状态标志字的一个位,每一位都称为一个状态标志位。9.3预定义类型的输入输出enum{skipws=0x0001,//跳过输入中的空白,可用于输出left=0x0002,//左对齐输出,可用于输出right=0x0004,//右对齐输出,可用于输出internal=0x0008,//在符号位和
7、基指示符后填入字符,可用于输出dec=0x0010,//转换基制为十进制数,可用于输入或输出oct=0x0020,//转换基制为八进制数,可用于输入或输出hex=0x0040,//转换基制为十六进制数,可用于输入或输出showbase=0x0080,//在输出时显示基指示符,可用于输入或输出showpoint=0x0100,//在输出时显示小数点,可用于输出9.3预定义类型的输入输出uppercase=0x0200,//十六进制输出时,表示制式//和表示数值的字符一律为大写,可用于输出showpos=0x0400,//对正整数显示正号,可用于输出scie
8、ntific=0x0800,//用科学表示法显示浮点数,可用于输出fixed=0
此文档下载收益归作者所有