我目前为一些 IO 操作编写了一个类。一些函数返回 IO 操作是否成功。如果我正在读取一个文件,我想知道是否应该返回std::ifstream::good()
或!std::ifstream::fail()
指示 IO 操作是否成功。
差异来自eof
位,我不确定我是否正确理解它。
假设我有一个包含 4 个字节(1 个整数)的二进制文件。
假设我读取了这个整数。
我的问题是:eof
在此操作之后还是在下一次 IO 操作之后设置标志(这将失败)?
如果在此操作后直接设置,如果我的读取函数返回std::ifstream::good()
,则结果将是false
(但整数被正确读取)。
你能解释我什么时候设置了 eof 位,我应该在我的函数结束时返回什么?