XXX类模版又都以,XXX模版的实例类

1 简介

我们都晓得,日常常用的那2个标准流,诸如iostream、ofstream、ifstream等等,其实都以对应的basic_XXX模版的实例类。
而那个basic_XXX类模版又都是接轨自同3个基类模版—-basic_ios

1 简介

我们都知晓,平日常用的那个标准流,诸如iostream、ofstream、ifstream等等,其实都以相应的basic_XXX模版的实例类。
而那一个basic_XXX类模版又都以后续自同2个基类模版—-basic_ios

2 basic_ios模版

概念那几个基类模版应该是出于可重用的目的。

2 basic_ios模版

概念那些基类模版应该是出于可重用的目的。

2.1 成员类型

  • char_type : 字符类型,即首先个模版参数。
  • char_traits : 萃取器,即第四个模版参数(默许为位于<
    string >头文件内的char_traits萃取器
    )。

2.1 成员类型

  • char_type : 字符类型,即首先个模版参数。
  • char_traits : 萃取器,即第②个模版参数(默许为位于<
    string >头文件内的char_traits萃取器
    )。

2.2 构造器

该模版的构造函数只须要多少个品类:charT、traits。
2个是字符类型,另1个是字符萃取器,两者都只和字符有关。

2.2 构造器

该模版的构造函数只要求多少个体系:charT、traits。
三个是字符类型,另七个是字符萃取器,两者都只和字符有关。

2.3 状态标记函数

  • good : 检查和测试流状态是否为good。
  • eof : 检测end-of-file 标记位是或不是被置为1,即是或不是到文件末尾
  • fail : 检查和测试 fail标记位 或许bad标记位是或不是被置为1,即从前是或不是有操作战败
  • bad : 检查和测试bad 标记位是或不是被置为1,
    在此以前是还是不是有操作导致了严重错误(致使流的完整性受到损坏)。
  • operator !、operator bool
    检查和测试流的图景是或不是正规,就是不是有操作退步或促成了严重错误(fail or
    bad)。
  • rdstate、setstate : 再次来到也许设置有着情形标记位。
  • clear : 清楚景况标记位。

2.3 状态标记函数

  • good : 检查和测试流状态是还是不是为good。
  • eof : 检查和测试end-of-file 标记位是还是不是被置为1,即是还是不是到文件末尾
  • fail : 检查和测试 fail标记位 或然bad标记位是或不是被置为1,即在此从前是或不是有操作退步
  • bad : 检查和测试bad 标记位是还是不是被置为1,
    此前是或不是有操作造成了严重错误(致使流的完整性受到损坏)。
  • operator !、operator bool
    检查和测试流的状态是还是不是正规,就是不是有操作退步或导致了严重错误(fail or
    bad)。
  • rdstate、setstate : 重回恐怕设置有着情形标记位。
  • clear : 清楚情状标记位。

2.4 格式化函数

  • coptfmt : 将给定的basic_ios对象的中间格式copy给本身。
  • fill
    重回、设置填充字符(当设定的肥瘦超过实际出口宽度时,才会产出填充情形)。

2.4 格式化函数

  • coptfmt : 将给定的basic_ios对象的中间格式copy给自家。
  • fill
    重临、设置填充字符(当设定的增长幅度大于实际出口宽度时,才会现出填充情况)。

2.5 别的函数

  • exceptions
    再次回到、设置分外掩码(设置之后,对应的情形标记位被置1时,会抛出尤其)。
  • imbue : 将locale灌输进流,那一个调用会触发imbue_event事件。
  • tie : 重回先前的涉及输出流、设置新的涉及输出流。”The tied
    stream
    is an output stream object which is flushed before each
    i/o operation in this stream object.”
    也等于说,每一回自笔者的输入输出操作产生前,该tied的流都回把缓冲区的内容输出。
    默许景况下,标准cin和cerr流与cout相关连,所以每回在键盘输入时,“黑框”都回把输入展现出来。
  • rdbuf : 返回、设置basic_ios内部的stream buffer。
  • narrow
    将盛传字符(常常是宽字符)窄化(narrow)成本身模版类的char_type类型字符。
  • widen
    将盛传字符宽化(widen)成本人模版类的char_type类型字符(平常是宽字符)。

2.5 别的函数

  • exceptions
    再次回到、设置尤其掩码(设置之后,对应的景色标记位被置1时,会抛出尤其)。
  • imbue : 将locale灌输进流,那些调用会触发imbue_event事件。
  • tie : 再次回到先前的关系输出流、设置新的涉及输出流。”The tied
    stream
    is an output stream object which is flushed before each
    i/o operation in this stream object.”
    也正是说,每一次自我的输入输出操作发生前,该tied的流都回把缓冲区的剧情输出。
    暗中同意情况下,标准cin和cerr流与cout相关连,所以每一回在键盘输入时,“黑框”都回把输入展现出来。
  • rdbuf : 返回、设置basic_ios内部的stream buffer。
  • narrow
    将盛传字符(平时是宽字符)窄化(narrow)成本身模版类的char_type类型字符。
  • widen
    将盛传字符宽化(widen)成自个儿模版类的char_type类型字符(平日是宽字符)。

3 ios_base类

其一类很独特,它是basic_ios类模版的基类,并且它的构造函数是私人住房的
那就代表它在陈设之初正是在这之中使用,只用于派生,不可能被用户证明使用。

3 ios_base类

那么些类很分外,它是basic_ios类模版的基类,并且它的构造函数是私人住房的
那就意味着它在统一筹划之初正是当中选择,只用于派生,不能被用户注明使用。

3.1 格式化函数

  • flags : 重返恐怕再一次设置有着格式标记符。
  • setf : 设置特定类型的格式标记符。
  • unsetf : 清除特定的格式标记符。
  • precision : 设置浮点数精度
  • width : 设置域宽

3.1 格式化函数

  • flags : 再次来到也许重新安装富有格式标记符。
  • setf : 设置一定项目的格式标记符。
  • unsetf : 清除特定的格式标记符。
  • precision : 设置浮点数精度
  • width : 设置域宽

3.2 本地化函数

  • imbue : “灌入”区域安装。
  • getloc : 重临当前区域设置。

3.2 本地化函数

  • imbue : “灌入”区域设置。
  • getloc : 再次来到当前区域设置。

3.3 有关internal array的函数

此类内部维护了一个internal extensible
array作为通用数组,并且定义了多个国有函数扶助用户使用它们。

  • xalloc(静态) : 重返一个extensible array的新下标。
  • iword : 再次回到数组中对应给定下标的long成分。
  • pword : 再次来到数组中给定下标对应的成分指针(void*)。

3.3 有关internal array的函数

该类内部维护了一个internal extensible
array作为通用数组,并且定义了五个国有函数帮忙用户选择它们。

  • xalloc(静态) : 重回二个extensible array的新下标。
  • iword : 重临数组中对应给定下标的long成分。
  • pword : 重回数组中给定下标对应的成分指针(void*)。

3.4 事件协助

ios_base支持事件这一概念,但只帮助少数的风云。

3.4 事件帮忙

ios_base扶助事件这一概念,但只支持少数的风云。

3.4.1 event枚举类

  • copyfmt_event : 当调用copyfmt时发生。
  • erase_event : 当stream的析构器被调用时。
  • imbue_event : 当调用ios_base::imbue时。

3.4.1 event枚举类

  • copyfmt_event : 当调用copyfmt时发生。
  • erase_event : 当stream的析构器被调用时。
  • imbue_event : 当调用ios_base::imbue时。

3.4.2 event_callback类型

ios_base以回调函数的款式来帮忙事件。
回调函数必须满意以下项目void (*event_callback) (event en, ios_base& obj, int index);
其中obj是触发事件的stream对象,index是登记回调函数时的流传的index参数。

3.4.2 event_callback类型

ios_base以回调函数的花样来帮助事件。
回调函数必须满意以下项目void (*event_callback) (event en, ios_base& obj, int index);
其中obj是接触事件的stream对象,index是挂号回调函数时的传遍的index参数。

3.4.3 注册事件回调函数

  • register_callback

3.4.3 注册事件回调函数

  • register_callback

3.5 其他

3.5 其他

3.5.1 其余函数

  • sync_with_stdio(静态)
    是还是不是同步C++输入输出流和C输入输出对象(stdin、stdout、stderr)。

3.5.1 其余函数

  • sync_with_stdio(静态)
    是还是不是同步C++输入输出流和C输入输出对象(stdin、stdout、stderr)。

3.5.2 其余成员类型

  • fmtflags : 流格式化标志符类型。
  • iostate : 流状态标记符类型。
  • openmode : 流开辟形式标记符类型。
  • seekdir : 流一定方向标志符类型。

3.5.2 别的成员类型

  • fmtflags : 流格式化标记符类型。
  • iostate : 流状态标记符类型。
  • openmode : 流打开形式标志符类型。
  • seekdir : 流稳定方向标记符类型。

3.5.3 别的成员类

  • failure
    继承自std::exception的十三分类,用来作为输入输出流的基本十分类。
  • Init : 七个正式流实例化的控制器

3.5.3 其余成员类

  • failure
    继承自std::exception的可怜类,用来作为输入输出流的基本相当类。
  • Init : 四个标准流实例化的控制器

4 Error Reporting

该头文件也提供了肯定的错误处理成效。

4 Error Reporting

该头文件也提供了必然的错误处理效率。

4.1 io_errc 枚举类

以此枚举类定义了input/output 的谬误情状。
C++标准只须求该枚举类定义stream枚举,但具体的库能够协调完结额外的枚举。

4.1 io_errc 枚举类

以此枚举类定义了input/output 的荒谬景况。
C++标准只要求该枚举类定义stream枚举,但现实的库可以本人达成额外的枚举。

4.2 make_error_code函数

该函数从给定的io_errc枚举构建出错误码(error_code对象)。

4.2 make_error_code函数

该函数从给定的io_errc枚举创设出错误码(error_code对象)。

4.3 make_error_condition函数

该函数从给定的io_errc枚举创设出错误境况(error_condition对象)。

4.3 make_error_condition函数

该函数从给定的io_errc枚举创设出荒谬情况(error_condition对象)。

4.4 iostream_category函数

归来一个error_category对象,该对象类型与io_errc枚举类对应的error_condition的错误连串相关联。

4.4 iostream_category函数

回去一个error_category对象,该对象类型与io_errc枚举类对应的error_condition的错误连串相关联。

5 Manipulators(全局函数)

  • boolalpha
    bool变量字符化(包涵输入输出),即1->true,0->false。
  • showbase : 输出时,展现数字的松开基数,即十六进制->0x,
    八进制->0, 十进制无前置基数。
  • showpoint : 展现浮点数的小数点。
  • showpos : 显示正整数的“+”号。
  • skipws : 跳过全部前置的white-space。
  • unitbuf : 每一回向流插入内容时,输出缓冲区的始末。
  • uppercase : 全部小写字母都用小写替代。
  • dec、hex、oct : 分别用十进制、十六进制、八进制来表示整数。
  • fixed、scientific
    分别用固确定地点小数法、科学计数法来表示浮点数。
  • internal、left、right
    分别使数字居中、左对齐、右对齐,在那之中居中时会遵照事态适当的插入填充字符。

5 Manipulators(全局函数)

  • boolalpha
    bool变量字符化(包蕴输入输出),即1->true,0->false。
  • showbase : 输出时,显示数字的放到基数,即十六进制->0x,
    八进制->0, 十进制无前置基数。
  • showpoint : 展现浮点数的小数点。
  • showpos : 展现正整数的“+”号。
  • skipws : 跳过全部前置的white-space。
  • unitbuf : 每一次向流插入内容时,输出缓冲区的剧情。
  • uppercase : 全数小写字母都用小写替代。
  • dec、hex、oct : 分别用十进制、十六进制、八进制来表示整数。
  • fixed、scientific
    分别用固定点小数法、科学计数法来代表浮点数。
  • internal、left、right
    分别使数字居中、左对齐、右对齐,在那之中居中时会依据事态非常的插入填充字符。

相关文章