gpt4 book ai didi

c++ - 到底什么时候检查 std::ifstream::good() ?

转载 作者:行者123 更新时间:2023-12-01 19:14:44 28 4
gpt4 key购买 nike

假设我有一段代码来计算文件的大小:

std::ifstream ifs(path, std::ifstream::ate | std::ifstream::binary);
unsigned int size = ifs.tellg();
ifs.close();

大多数情况下,在 C++ 中,何时何地调用 ifs.good() 相关?

就我而言,创建流之后更好还是调用tellg()之后更好?

然后,如果 good() 返回 false,我应该显式关闭流吗?

最佳答案

你永远不需要显式关闭流开始,good() 是一个函数:

Check whether state of stream is good

Returns true if none of the stream's error state flags (eofbit, failbit and badbit) is set.

您可以调用它来验证是否出现问题,然后验证其他位以检查问题所在。例如:

  • 输入操作到达文件结尾(eofbit)

  • I/O 操作逻辑错误(失败位)

  • I/O 操作读/写错误(badbit)

但是,调用 good to think 手动关闭流是没有用的。

In my case, is it better after creating the stream or after calling tellg()?

就我而言,在这种情况下,您不需要调用 good(),但如果您想调用它,最好在 tellg() 之后调用,这样可以在执行中设置一些失败。

关于c++ - 到底什么时候检查 std::ifstream::good() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60002614/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com