例2:使用格式控制函数实现指定域宽和数制。 setw设置仅对其后 1402 的一次插入有效 使用缓冲区 若欲将输出信息送到缓冲区后立即输出,必须强制刷新 输出流。刷新输出流可用函数fush实现 例3:输出的信息在显示器上不显示。 1403 2021/224 16
2021/2/24 16 例2:使用格式控制函数实现指定域宽和数制。 1402 setw设置仅对其后 的一次插入有效。 使用缓冲区 若欲将输出信息送到缓冲区后立即输出,必须强制刷新 输出流。刷新输出流可用函数flush实现。 例3:输出的信息在显示器上不显示。 1403
流的错误处理 可用系统提供的错误检测功能检测。类ios中的名为 10 state公有枚举类型: enum 1o state goodbit=0x00,∥输入/输出操作正常 eofbit=0x01 到达文件尾 faibit=0x02, /输入/输出操作出错 badbit=0x04 ∥非法输入(输出操作 发生输入输出错误时,系统设置状态位。用户可用类ⅰos 中提供的成员函数读取状态,并作相应处理 2021/224
2021/2/24 17 流的错误处理 可用系统提供的错误检测功能检测。类ios中的名为 io_state公有枚举类型: enum io_state{ goodbit=0x00, //输入/输出操作正常 eofbit=0x01, //已到达文件尾 faibit=0x02, //输入/输出操作出错 badbit=0x04 //非法输入/输出操作 }; 发生输入/输出错误时,系统设置状态位。用户可用类ios 中提供的成员函数读取状态,并作相应处理
这些成员函数为: int ios: rdstate()const(return state;) ∥读取输入/输出状态字 int ios: bad(const return state &badbit; ∥状态字的 badbit位为1时,返回值为非零值(4),否则返回值为0 void ios: clear(int 1=0 state= i; 清除流中的错误 int ios: eof( ) constreturn state &eofbit; /用来判断是否到达文件尾,若到达则返回非零值,否则返回零 int ios: fail( )const return state &(badbit failbit 流岀现输入输岀错误或非法操作时,返回非零值,否则返回零 int ios: good( const return state==0; ∥流输入输岀操作正常时返回值0,否则返回1 2021/2/24 18
2021/2/24 18 这些成员函数为: int ios::rdstate( )const{return state;} //读取输入/输出状态字 int ios::bad( )const{return state &badbit;} //状态字的badbit位为1时,返回值为非零值(4),否则返回值为0 void ios::clear(int_i=0 ){state=_i;} //清除流中的错误 int ios::eof( )const{return state &eofbit;} //用来判断是否到达文件尾,若到达则返回非零值,否则返回零 int ios::fail( )const{return state &(badbit | failbit;} //流出现输入/输出错误或非法操作时,返回非零值,否则返回零 int ios::good( )const{return state= =0;} //流输入/输出操作正常时返回值0,否则返回1
如若要清除状态字中的某一个状态位,可使用如下形式: cin.clear(cin. rdstate( )& -ios: badbit) 将流中的非法输入/输出操作位置为0 cin. clear(cin. rdstate()|-ios. badbit /将流中的非法输入输出操作位置为1 例4:输入不正确的数据时,导致程序出错。不适当的输入 输出检测可能 导致程序不能 1404 正常运行! 例5:输入不正确的数据时,取完缓冲区中的字符 1405 2021/224 19
2021/2/24 19 例4:输入不正确的数据时,导致程序出错。 如若要清除状态字中的某一个状态位,可使用如下形式: cin.clear(cin.rdstate( )&~ios::badbit); //将流中的非法输入/输出操作位置为0 cin.clear(cin.rdstate( ) | ~ios::badbit); //将流中的非法输入/输出操作位置为1 不适当的输入/ 输出检测可能 导致程序不能 1404 正常运行! 例5:输入不正确的数据时,取完缓冲区中的字符。 1405
标准设备的输入/输出 三大类数据的输入输出:字符类、字符串类、数值类 不同类型数据的输入由类 Istream通过多次重载“>>”实现; 不同类型数据的输出由类 ostream通过多次重载“<<3实现。 不同类型数据的输入 当程序中包含头文件“ iostream. h'时,系统自动为该程序 产生输入流cin和输出流cout 例6:使用cin示例。 1406 2021/224
2021/2/24 20 标准设备的输入/输出 三大类数据的输入/输出:字符类、字符串类、数值类。 不同类型数据的输入由类istream通过多次重载“>>”实现; 不同类型数据的输出由类ostream通过多次重载“<<”实现。 不同类型数据的输入 当程序中包含头文件“iostream.h”时,系统自动为该程序 产生输入流cin和输出流cout。 例6:使用cin示例。 1406