可以在流中设置“ eof”吗?

时间:2018-09-19 11:06:53

标签: c++ fstream ofstream

我几乎找不到任何信息。是否可以,是否可以,在什么情况下可以设置eofbit(ofstream_instance.eof()为true的意思)?

我对独立的独立流更感兴趣,该独立流不与某些fstream中的ifstream关联,因此ifstream不能设置“共享” eofbit(如果可能的话)。

如果我只是简单地写入文件,而磁盘上没有空间,或者操作系统没有为写入提供其他空间,那么我希望只设置failbit或badbit,但是在到达文件末尾的同时写信对我来说没有意义。但是我没有找到关于此的讨论。

1 个答案:

答案 0 :(得分:4)

否。 eof()返回eofbit,对于没有关联输入流的输出流没有实际意义。

  

eofbit表示输入操作已到达输入序列的末尾

     

[ios.types] / 3.1,表107

设置eofbit的动作被枚举here,它们都仅对输入流起作用。

我们可以想象一些特定于实现的怪异场景,其中在写入文件时会遇到EOF(与某些其他错误情况相对)-也许我们正在通过某些OS函数写入固定大小的文件缓冲区-但据我所知,标准库抽象无法处理这种情况,而且我从来没有听说过这样的API。