C++ 概念: UnformattedInputFunction

来自cppreference.com
< cpp‎ | concept
 
 
 

[编辑] 要求

无格式输入函数 (UnformattedInputFunction) 是进行下列操作的流输入函数:

  • 构造有自动存储期的 basic_istream::sentry 类型对象,并将 noskipws 参数设为 true ,这进行下列操作
  • eofbitbadbit 在输入流上被设置,则一并设置 failbit ,且若此输入流的异常掩码中启用了 failbit 上的异常,则抛出 ios_base::failure
  • 冲入 tie() 过的输出流,若可应用
  • 以调用 sentry::operator bool() 检查 sentry 的状态,这等价于 basic_ios::good
  • 若 sentry 返回 false 或 sentry 的构造函数抛异常则:
  • 设置输入流中的释出字符数 (gcount) 为零
  • 若调用函数写入 CharT 的数组,则写 CharT() (空字符)到数组的首位置
  • 若 sentry 返回 true ,则进行输入,如同以调用 rdbuf()->sbumpc()rdbuf()->sgetc()
  • 若抵达了流尾(调用 rdbuf()->sbumpc()rdbuf()->sgetc() 返回 Traits::eof() ),则设置 eofbit 。若此流的异常掩码中启用了 eofbit 上的异常,则抛出 ios_base::failure
  • 若输入中抛异常,则设置输入流中的 badbit 。若此流异常掩码中启用了 badbit 上的异常,则重抛异常。
  • 若输入中不抛异常,则设置输入流中的释出字符数 (gcount) 。
  • 任何事件中,无论是异常终止还是返回,离开此函数前都会调用 sentry 的析构函数。

[编辑] 标准库

下列标准库函数是无格式输入函数 (UnformattedInputFunction) 。