cin & cout

来源:互联网 发布:数据上传到服务器 编辑:程序博客网 时间:2024/04/29 15:14

 

首先,cin是个对象,没有所谓返回
>>输入操作符返回流对象的引用,cin >> x 返回istream&,cout << x返回oostream&

if可直接判断流,如if (cin)
while间接判断,如while (cin >> x)
若流被标记错误(读取失败)就返回false.
ctrl+z,F6可跳出循环,这代表eof(文件结束符)

 

 

在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( )                    返回当前指针 

 


原创粉丝点击