在ios,istream和ostream类中,还定义了若干输入输出函数,它们主要用于错误处理,流的刷新以及流输入输出方式的控制.
错误处理
在对一个流对象进行I/O操作时,可能会产生错误。当错误发生时,错误的性质被记录在ios类的一个数据成员中。
ios类中定义的描述错误状态的常量:
goodbit-------------没有错误,正常状态
eofbit--------------到达流的结尾
failbit-------------I/O操作失败,清除状态字后,可以对流继续进行操作。
badbit--------------试图进行非法操作,清除状态字后,流可能还可以使用。
hardfail------------致命错误,不可恢复的错误。
对应于这些位,可用ios中定义的如下函数来检查流的当前状态位:
int good()---------如果正常,返回非0值
int bad()----------如果badbit被设置,返回非0值
int eof()----------如果eofbit被设置,返回非0值
int fail()---------如果failbit被设置,返回非0值
int rdstate()------返回当前错误状态位.
流的其它成员函数可以从流中读取字符或字符串,对流进行无格式化的输入 输出操作,以及直接控制对流的I/O操作。
返回类型 ostream类的成员 描 述
ostream& put(char ch) 向流中输出一个字符ch,不进行任何转换
ostream& write(char*,int) 向流中输出指定长度的字符串,不进行转换
ostream& flush( ) 刷新流,输出所有缓冲的但还未输出的数据
ostream& seekp(streampos) 移动流的当前指针到给定的绝对位置
ostream& seekp(sereamoff,seek_dir) 流的当前指针类似与文件的当前指针
streampos teelp( ) 返回流的当前指针的绝对位置
istream类的成员函数
返回类型 istream类的成员 描 述
int get( ) 读取并返回一个字符
istream& get(char&c) 读取字符并存入c中
istream& putback( ) 将最近读取的字符放回流中
istream& read(char*,int) 读取规定长度的字符串到缓冲区中
int peek( ) 返回流中下一个字符,但不移动文件指针
istream& seekg(streampos) 移动当前指针到一绝对地址
istream& seekg(streampos,seek_dir) 移动当前指针到一相对地址
streampos tellg( ) 返回当前指针
其他地方找的,很多函数我也没常用过,自己看吧!