首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >!ofstream.fail()和bool(ofstream)有什么区别?

!ofstream.fail()和bool(ofstream)有什么区别?
EN

Stack Overflow用户
提问于 2022-02-20 02:16:27
回答 1查看 53关注 0票数 0

我目前正在学习如何写入文件。下面是代码:

代码语言:javascript
复制
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream out;
    out.open("nbb.txt");
    if (!out.fail()) {
        // write something
    } else {
        cout << "Failed to open file!" << endl;
    }
}

因此,当我调用open()方法时,(如果文件不能打开),则条件out.fail()为真。但是,我尝试将out实例作为布尔值使用。它也能用!

代码语言:javascript
复制
if (out) {
    // write to the file...
}

那么使用if (!out.fail())if (out)有什么区别呢?

有谁可以帮我?

EN

回答 1

Stack Overflow用户

发布于 2022-02-20 04:27:50

代码语言:javascript
复制
.fail()

如果有任何问题,返回true,所以使用。

代码语言:javascript
复制
if(!out.fail())

if(not(false))相同,即if(true)

当您说if(out)时,自动检查值是否为0以外的值,NULL和nullptr。

代码语言:javascript
复制
if(out)

当存在值时,这将成为if(true)

这使得if(out) and if(!out.fail())也是一样的。

如果我错了就纠正我

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71190873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档