gpt4 book ai didi

c++ - (!file) 和 (!file.is_open()) 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 14:05:27 30 4
gpt4 key购买 nike

if(!file)if(!file.is_open()) 有什么区别?我用它们来检查文件是否已成功打开/读取。

#include<iostream>
#include<fstream>
using namespace std;

int main(){
ifstream file;

// first one
if (!file)
cout<<"File is not opened"<<endl;
else
. . .

//second one
if (!file.is_open())
cout<<"File is not opened"<<endl;
else
. . .
}

最佳答案

c++ 文档解释了 operator!

Returns true if an error has occurred on the associated stream. Specifically, returns true if badbit or failbit is set in rdstate()

另一方面,is_open()

Checks if the file stream has an associated file. Returns true if the file stream has an associated file, false otherwise

如果您想知道文件是否成功打开,请使用is_open()。它也更能表达您的意图。

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

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