gpt4 book ai didi

c++ - file.is_open() 和 file.fail() 的区别

转载 作者:搜寻专家 更新时间:2023-10-31 00:22:08 36 4
gpt4 key购买 nike

文件的初始化:

ifstream file("filename.txt");

if (file.is_open())if (!file.fail()) 有什么区别?

我应该使用什么来确定文件是否已准备好进行 I/O?

我们假设变量 file 包含文件流的对象。

最佳答案

is_open() 如果先前对 open() 的调用成功并且没有对 close() 的调用,则返回 true。在您的示例中,open() 是从构造函数中调用的。

如果在 rdstate 中设置了 failbitbadbit,则

fail() 返回 true。

failbit 通常表示转换失败。例如,您试图读取一个整数,但下一个字符是一个字母。流还可以;您可以接下来读取一个字符,它会成功。您不会期望 failbit 在打开文件后立即设置。

badbit 在流损坏时设置,下一个操作将失败。

关于c++ - file.is_open() 和 file.fail() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640852/

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