《输入输出流库》PPT课件.ppt
《《输入输出流库》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《输入输出流库》PPT课件.ppt(23页珍藏版)》请在三一办公上搜索。
1、3.5 输入输出流库3.5.1 概述3.5.2 流的格式控制和错误处理3.5.3 使用输入输出成员函数3.5.4 提取和插入运算符重载3.5.5 文件流概述3.5.6 顺序文件操作3.5.7 随机文件的操作,概述 输入输出操作是由“流”来处理的。数据从一个位置到另一个位置的流动抽象为“流”。数据从键盘流入到程序中时,这样的流称为“输入流”,数据从程序中流向屏幕或磁盘文件时,这样的流称为“输出流”。当流被建立后就可以使用一些特定的操作从流中获取数据可向流中添加数据。从流中获取数据的操作称为“提取”操作,向流中添加数据的操作称为“插入”操作。C+提供了四个预定义的标准流对象:cin、cout、ce
2、rr和clog。当在程序中包含了头文件“iostream.h”,编译器调用相应的构造函数,产生这四个标准流对象,在程序中就可以直接使用它们了。cin是istream类的对象,用处理标准输入,即键盘输入。cout是ostream类的对象,用处理标准输出,即屏幕输出。cerr和clog都是ostream类的对象,用来处理标准出错信息,并将信息显示在屏幕上。在这四个标准流对象中,除了cerr不支持缓冲外,其余三个都带有缓冲区。标准流通常用提取运算符“”和插入运算符“”来进行输入输出操作的,而且系统还会自动地完成数据类型的转换。由于前面已讨论过cin和cout的用法,对于cerr和clog也可同样使用
3、,因此这里就不再重复了。,3.5输入输出流库,3.5输入输出流库,流的格式控制和错误处理 使用格式控制成员函数 在ios类中控制输入输出的成员函数有:int ios:width();/返回当前的宽度设置int ios:width(int);/设置宽度并返回上一次的设置int ios:precision();/返回当前的精度设置int ios:precision(int);/设置精度并返回上一次的设置char ios:fill();/返回当前空位填充的字符char ios:fill(char);/设置空位填充的字符并返回上一次的设置long ios:setf(long);/设置状态标志并返回上一
4、次的状态标志long ios:unsetf(long);/消除状态标志并返回上一次的状态标志long ios:flags();/返回当前的状态标志long ios:flags(long);/设置状态标志并返回上一次的状态标志,3.5输入输出流库,例Ex_FormatFunc 使用格式控制成员函数。#include using namespace std;void main()int nNum=12345;double dNum=12345.6789;char*str=This,is,a Test!;cout.setf(ios:oct|ios:showbase|ios:showpos);cout
5、nNumtdNumendl;cout.setf(ios:hex|ios:scientific|ios:uppercase);coutnNumtdNumendl;cout.fill(*);/设置填充符号为*for(int i=0;i3;i+)cout.width(12);coutstri;coutendl;cout.setf(ios:left);/设置标志:左对齐for(i=0;i3;i+)cout.width(12);coutstri;coutendl;char a10;cin.getline(a,sizeof(a);,3.5输入输出流库,运行结果:,使用格式算子 格式算子是一个对象,可以直接
6、被插入符或提取符操作。,3.5输入输出流库,例Ex_Formator 使用格式算子。#include#include using namespace std;void main()int nNum=12345;double dNum=12345.6789;char*str=This,is,a Test!;coutsetiosflags(ios:oct|ios:showbase|ios:showpos);coutnNumtdNumendl;coutsetiosflags(ios:hex|ios:scientific|ios:uppercase);coutnNumtdNumendl;coutset
7、fill(*);/设置填充符号为*for(int i=0;i3;i+)coutsetw(12)stri;coutendl;coutsetiosflags(ios:left);/设置标志:左对齐for(int i=0;i3;i+)coutsetw(12)stri;coutendl;char a10;cin.getline(a,sizeof(a);,3.5输入输出流库,运行结果:,流的错误处理 在输入输出过程中,一旦发现操作错误,流就会将发生的错误记录下来。可以使用提供的错误检测功能,检测和查明错误发生的原因和性质,然后调用clear()函数清除错误状态,使流能够恢复处理。在ios类中,定义了一个
8、公有枚举成员io_state来记录各种错误的性质:enum io_state goodbit=0 x00,/正常eofbit=0 x01,/已达到文件尾failbit=0 x02,/操作失败badbit=0 x04/非法操作;在ios类中又定义了检测上述流状态的下列成员函数:int ios:rdstate();/返回当前的流状态int ios:bad();/如果badbit位被置位,返回非0voidios:clear(int);/清除错误状态int ios:eof();/返回非0表示提取操作已到文件尾int ios:fail();/如果failbit位被置位,返回非0int ios:good(
9、);/操作正常时,返回非0,3.5输入输出流库,例Ex_ManipError 检测流的错误。#include using namespace std;void main()int i,s;char buf80;couti;s=cin.rdstate();couti;s=cin.rdstate();char a10;cin.getline(a,sizeof(a);,3.5输入输出流库,运行结果:,使用输入输出成员函数 输入操作的成员函数(1)使用get()和getline()函数用于输入字符或字符串的成员函数get()原型如下:int get();istream它是用来从输入流中提取一个输入行,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出流库 输入输出 PPT 课件

链接地址:https://www.31ppt.com/p-5610390.html