我的直觉是数据完全被丢弃了。我似乎找不到一个来源来证实这种怀疑。
插入到未打开流中的数据会发生什么?(如。std::ofstream
)
数据是否被丢弃?也许它被存储在缓冲区中,直到流被打开?也许还有别的事?
在所有文件流缓冲区方法的标准"备注"中,对应于缓冲区上的操作,它表明如果is_open() == false
,该函数总是失败。失败定义为返回traits_type::eof()
。这个特殊的值由高级IO函数捕获,然后将std::ios_base::badbit
标志设置为流状态。
如果输出流处于失败状态(例如:: not open)流什么也没发生——输出/缓冲数据的请求被完全忽略。
注意:如果异常std::ios_base::badbit
是启用的,它将被抛出。