如下代码:
int main(int argc, char *argv[])
{
ifstream infile;
if (!infile.open(argv[1])) //这里编译错误
cout<<"Can't open file"<<endl;
......
}
改成
int main(int argc, char *argv[])
{
ifstream infile;
infile.open(argv[1]);
if (!infile) //这里编译正确了
cout<<"Can't open file"<<endl;
......
}
用g++编译的,想不通错在哪?有知道原因的同学、老师能解释以下吗?
int main(int argc, char *argv[])
{
ifstream infile;
if (!infile.open(argv[1])) //这里编译错误
cout<<"Can't open file"<<endl;
......
}
改成
int main(int argc, char *argv[])
{
ifstream infile;
infile.open(argv[1]);
if (!infile) //这里编译正确了
cout<<"Can't open file"<<endl;
......
}
用g++编译的,想不通错在哪?有知道原因的同学、老师能解释以下吗?
本文探讨了一段C++代码中关于文件打开失败后的判断逻辑,解释了为什么使用ifstream对象的bool转换来检查文件是否成功打开更为合适。
5324





