gpt4 book ai didi

c++ - if ('fstream object' ) 如何根据文件是否打开返回真值或假值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:34 25 4
gpt4 key购买 nike

我很好奇 fstream class 是如何简单地返回一个 truefalse 值的将对象的名称放在条件语句中。例如……

std::fstream fileStream;
fileStream.open("somefile.ext");

if (!fileStream) // How does this work?
std::cout << "File could not be opened...\n";

我问这个是因为如果我以类似的方式使用它,我希望我自己的类返回一个值。

最佳答案

它并不是真的等于真或假,而是它重载了 ! 运算符以返回其状态。

参见 http://www.cplusplus.com/reference/iostream/ios/operatornot/了解详情。

自己做这个很简单,查看 operator overloading faqC++ Operator Overloading Guidelines .

编辑:有人向我指出 ios 还重载了 void * 转换运算符,在失败的情况下返回空指针。因此,您也可以使用该方法,该方法也包含在前面提到的常见问题解答中。

关于c++ - if ('fstream object' ) 如何根据文件是否打开返回真值或假值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10098230/

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