当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

通过实例学习C++的IO库知识

        1.只有支持复制的元素类型可以存储在vector或其他容器类型里.因此不存在存储流对象的vector或其他容器.
        2.形参或返回类型也不能为流类型.如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用(非const).
  002 IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误.
        strm::iostate         机器相关的整型名,由各个iostream类定义,用于定义条件状态.
        strm::badbit          strm::iostate类型的值,用于指出被破坏的流.
        strm::failbit         strm::iostate类型的值,用于指出失败的IO操作.
        strm::eofbit          strm::iostate类型的值,用于指出流已经到达文件结束符.
        s.eof()               如果设置了流s的eofbit值,则该函数返回true.
        s.fail()              如果设置了流s的failbit值,则该函数返回true.
        s.bad()               如果设置了流s的badbit值,则该函数返回true.
        s.good()              如果流s处于有效状态,则该函数返回true.
        s.clear()             将流s中的所有状态值都重设为有效状态.
        s.clear(flag)         将流s中的某个指定条件状态设置为有效.flag的类型是strm::iostate.
        s.setstate(flag)      给流s添加指定条件.flag的类型是strm::iostate.
        s.rdstate()           返回流s的当前条件,返回值类型为strm::iostate.
      举例. [Page]
        int val;
        cin >> val;
      如果设备输入dog,则cin在尝试将输入的字符串读为int型数据失败后,生成一个错误状态,如果输入end-of-file(^d),也会进入错误状态.
      检测流是否可用最简单的方法.
        if(cin)
          ...
        while(cin >> word)
          ...
  003 每个IO类还定义了三个iostate类型的常量值,分别表示特定的位模式.这些常量值用于指出特定类型的IO条件,可与位操作一起使用.
      badbit标志着系统级的故障,如无法恢复的读写错误.如果出现了这类错误,则该流通常就不能在继续使用了.
      如果出现的是可恢复的错误,如在希望获得数值类型数据时输入了字符,此时则设置failbit标志.
      eofbit实在遇到文件结束符时设置的,此时同时还设置了failbit.
      流的状态由bad, fail, eof和good操作揭示.clear和setstate操作用于改变条件成员的状态.
      在流出现了问题并补救后,用clear重置流的状态.
  004 流状态的查询和控制.
        // 08004.cpp
        #include <iostream>
        #include <stdexcept>
        #include <string>
        using std::cin;
        using std::cout;
        using std::cerr;
        using std::endl;
        using std::flush;
        using std::runtime_error;
        using std::istream;
        using std::string;

        int main()...{
        int ival = 0;

共5页 首页 上一页 1 2 3 4 5 下一页 尾页 跳转到
相关内容
赞助商链接