C++中ifstream问题

如下代码:
int main(int argc, char *argv[])
{
        ifstream infile;
        if (!infile.open(argv[1]))                             //这里编译错误
              cout<<"Can't open file"<        ......
}

改成
int main(int argc, char *argv[])
{
        ifstream infile;
        infile.open(argv[1]);
        if (!infile)                                                   //这里编译正确了
              cout<<"Can't open file"<         ......
}

用g++编译的,想不通错在哪?有知道原因的同学、老师能解释以下吗?
    

你可能感兴趣的:(C++中ifstream问题)