打开文件时ifstream的程序崩溃(Ifstream crashes program when o

2019-10-16 21:13发布

我已经收窄我的代码了,我找到了问题的根源,这是当我打开一个文件。 该文件不存在,编译时我没有得到任何警告或错误。

int main(int argc, const char* args[]) 
{
    cout << "Wellcome" << endl;
    cout << args[1];
    ifstream exists(args[1]);
    if(!exists)
    {
        printf("FILE NOT FOUND");
        return 1;
    }
    exists.close();
    ifstream* in;
    in->open(args[1],ios::binary|ios::in);
    //do stuff
    in->close();
    return 0;
}

Answer 1:

你已经创建了一个指向ifstream对象,但你永远不分配的ifstream为它指向。 为了解决这个问题,只考虑堆栈中分配的:

ifstream in;
in.open(args[1],ios::binary|ios::in);
//do stuff
in.close();

一般情况下,你通常不需要,除非你希望他们活得比创建它们的功能动态分配的对象。

希望这可以帮助!



文章来源: Ifstream crashes program when opening file