A. *_*lle 5 c++ std stream ifstream
假设我有一段代码来计算文件的大小:
std::ifstream ifs(path, std::ifstream::ate | std::ifstream::binary);
unsigned int size = ifs.tellg();
ifs.close();
Run Code Online (Sandbox Code Playgroud)
大多数时候,在 C++ 中,在哪里/何时调用相关ifs.good()?
就我而言,创建流后还是调用后更好tellg()?
那么,如果good()return false,我应该显式关闭流吗?
从您永远不需要显式关闭流开始,good()是一个函数:
检查流状态是否良好
如果没有设置流的错误状态标志(eofbit、failbit 和 badbit),则返回 true。
您可以调用它来验证某些事情是否进展顺利,然后验证其他位以检查问题所在。例如 :
输入操作到达文件结尾 (eofbit)
I/O 操作逻辑错误(故障位)
I/O 操作读/写错误(badbit)
然而,调用good to think on 手动关闭流是没有用的。
就我而言,创建流之后更好还是调用tellg()之后更好?
就我而言,在这种情况下,您不需要 call good(),但如果您想调用它,最好是tellg()在执行过程中设置一些失败。