std::ios_base::iostate
科技促进发展:监督办[医]基地::碘酸盐
typedef /*implementation defined*/ iostate; | | |
---|---|---|
static constexpr iostate goodbit = 0; | | |
static constexpr iostate badbit = /*implementation defined*/ static constexpr iostate failbit = /*implementation defined*/ static constexpr iostate eofbit = /*implementation defined*/ | | |
指定流状态标志。这是一个BitmaskType
,定义了以下常量:
Constant | Explanation |
---|---|
goodbit | no error |
badbit | irrecoverable stream error |
failbit | input/output operation failed (formatting or extraction error) |
eofbit | associated input sequence has reached end-of-file |
伊夫比特
eofbit由下列标准库函数设置:
- 字符串输入函数
std::getline
如果它通过到达流的末尾完成,而不是到达指定的终止字符。
- 的数字输入重载。basic_istream::operator>>如果在读取下一个字符时遇到流的结尾,则在num_get::get处理。取决于解析状态,failbit可能同时设置,也可能不同时设置:例如,int n; istringstream buf("1" buf >> n;集eofbit,但不是failbit*整数1已成功解析并存储在n另一方面,bool b; istringstream buf("tr" buf >> boolalpha >> b;集两者eofbit和failbit*没有足够的字符来完成布尔值的解析true...
- 字符提取重载operator>>std::basic_istream,如果流的末尾在限制%28(如果有%29)之前到达,则提取字符数。
- 大
std::get_time
I/O机械手和任何std::time_get
解析功能:time_get::get
,,,time_get::get_time
,,,time_get::get_date
等等,如果在处理解析预期日期/时间值所需的最后一个字符之前到达流的末尾。
- 大
std::get_money
I/O机械手和money_get::get
函数,如果在处理解析预期货币值所需的最后一个字符之前到达流的末尾。
- 大
basic_istream::sentry
构造函数,在每个格式化输入函数的开头执行:除非skipws
位未设置%28例如。通过发行std::noskipws
%29,哨兵读取并丢弃前面的空格字符。如果在此操作期间到达输入流的结束,则两个eofbit
和failbit
设置,并且不发生任何输入。
- I/O机械手
std::ws
,如果它在使用空格%28时到达流的末尾,但与格式化的输入哨兵不同,它不设置failbit
在这种情况下,%29
- 未格式化的输入函数
basic_istream::read
,,,basic_istream::get
,,,basic_istream::peek
,和basic_istream::getline
,当到达溪头的时候。
- 丢弃输入函数
basic_istream::ignore
在到达指定的分隔符字符之前到达流的末尾。
- 即时输入函数
basic_istream::readsome
,如果basic_streambuf::in_avail
回报-1
以下功能明确eofbit
作为副作用:
basic_istream::putback
basic_istream::unget
basic_istream::seekg
故障位
故障位由下列标准库函数设置:
- 大
basic_istream::sentry
构造函数,在每个输入函数的开头执行,如果eofbit
或badbit
已在流上设置,或者在使用前导空格时遇到流的结束。
- 大
basic_ostream::sentry
构造函数,在每个输出函数的开头执行,在实现定义的条件下执行。
- operator>>(std::basic_string<>)如果函数没有从输入流中提取字符。
- operator>>(std::complex<>)如果函数无法提取有效的复数。
- 的字符数组和单个字符重载。operator>>如果他们不能提取任何字符。
- 流超载basic_istream::operator>>如果Streambuf参数是空指针,或者没有向Streambuf中插入字符。
- 流超载basic_ostream::operator<<如果函数没有插入字符。
- operator>>(std::bitset<>)如果函数没有从输入流中提取字符。
std::getline
如果函数没有提取字符,或者它设法提取basic_string::max_size
输入流中的字符。
- 的数值、指针和布尔输入重载。basic_istream::operator>>%28技术上,num_get::get如果不能将输入解析为有效值,或者解析的值不适合目标类型,则调用%29。
- 时间输入机械手
std::get_time
28%技术上time_get::get
如果不能根据给定的格式字符串将输入明确解析为时间值,则调用%29。
- 货币输入机械手
std::get_money
28%技术上money_get::get
如果不能根据区域设置规则将输入明确解析为货币值,则调用%29。
- 所有提取算子
RandomNumberEngine
斯,如果遇到错误的输入。
- 所有提取算子
RandomNumberDistribution
斯,如果遇到错误的输入。
- 未格式化的输入函数
basic_istream::get
如果他们不能提取任何字符。
basic_istream::getline
,如果它不提取字符,如果它在未遇到分隔符的情况下填充所提供的缓冲区,或者如果所提供的缓冲区大小小于1,则为。
basic_istream::read
,如果在提取所有请求的字符之前,输入流上发生了文件结束条件。
basic_istream::seekg
论失败
basic_ostream::tellp
论失败
- 的建设者
std::basic_fstream
,,,std::basic_ifstream
,和std::basic_ofstream
如果无法打开文件,则使用文件名参数。
basic_fstream::open
,,,basic_ifstream::open
,和basic_ofstream::open
如果无法打开文件。
basic_fstream::close
,,,basic_ifstream::close
,和basic_ofstream::close
如果无法关闭文件。
坏蛋
坏位由下列标准库函数设置:
basic_ostream::put
如果由于任何原因,它无法将字符插入输出流中。
basic_ostream::write
如果由于任何原因,它无法将字符插入输出流中。
- 格式化输出函数运算符<<,,,std::put_money,和std::put_time,如果它们在完成输出之前遇到输出流的末尾。
basic_ios::init
调用以使用空指针初始化流时,rdbuf()
basic_istream::putback
和basic_istream::unget
在流上调用空值时rdbuf()
- basic_ostream::operator<<(basic_streambuf*)当空指针作为参数传递时。
basic_istream::putback
和basic_istream::unget
如果
rdbuf()->sputbackc()或rdbuf()->sungetc()回归traits::eof()...
- basic_istream::sync,,,basic_ostream::flush上的每个输出函数unitbuf输出流,如果rdbuf()->pubsync()回报-1
- 如果关联流缓冲区%28例如的任何成员函数引发异常,则每个流I/O函数。保险杠%28%29,xspon%28%29,sgetc%28%29,溢出%28%29,等等
ios_base::iword
和ios_base::pword
在故障%28等情况下。未能分配内存%29
例
另见
下表显示basic_ios
访问器%28good()
,,,fail()
的所有可能组合的%29。ios_base::iostate
旗帜:
ios_base::iostate flags | basic_ios accessors |
---|---|
eofbit | failbit |
false | false |
false | false |
false | true |
false | true |
true | false |
true | false |
true | true |
true | true |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。