小智 14
标准库在以下情况下设置badbit:
由于任何原因插入输出流
put()或write()失败.插入到由输出流
operator<<,std::put_money或std::put_time,不能完成,因为输出流的末尾达到(小面的格式化输出功能,例如num_put::put()或money_put::put(),返回迭代iter使得iter.failed()==true)流由用于一个空指针
rdbuf(),或putback()/unget()上调用流与空rdbuf(),或传递给一个空指针operator<<(basic_streambuf*)
rdbuf()->sputbackc()或者rdbuf()->sungetc()返回traits::eof()到putback() orunget()`
rdbuf()->pubsync()返回-1到sync(),到flush(),或到的析构函数ostream::sentry上的unitbuf流异常是由相关联的数据流缓存器中的任何成员功能的I/O操作期间抛出(例如
sbumpc(),xsputn(),sgetc(),overflow(),等等)抛出异常
iword()或pword()(例如std::bad_alloc)
这可能是通过www.cpluplus.com选择cppreference.com的另一个原因,请参阅:cplusplus.com有 什么问题?