插入到未打开流中的数据会发生什么

What happens to the data inserted into an unopen stream?

本文关键字:数据 什么 插入      更新时间:2023-10-16

我的直觉是数据完全被丢弃了。我似乎找不到一个来源来证实这种怀疑。

插入到未打开流中的数据会发生什么?(如。std::ofstream)

数据是否被丢弃?也许它被存储在缓冲区中,直到流被打开?也许还有别的事?

在所有文件流缓冲区方法的标准"备注"中,对应于缓冲区上的操作,它表明如果is_open() == false,该函数总是失败。失败定义为返回traits_type::eof()。这个特殊的值由高级IO函数捕获,然后将std::ios_base::badbit标志设置为流状态。

如果输出流处于失败状态(例如:: not open)流什么也没发生——输出/缓冲数据的请求被完全忽略。

注意:如果异常std::ios_base::badbit是启用的,它将被抛出。