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
. . .
}
!file.is_open
是不规范的,你可能意思是!file.is_open()
。 - Timofailbit
将被设置,因此对于打开来说测试是等效的。请参见 std::basic_ifstream<CharT,Traits>::basic_ifstream。 - David C. Rankin