我缩小了我的代码范围,我找到了问题的根源,就是当我打开文件时。 该文件确实存在,编译时我没有收到任何警告或错误。
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;
}
答案 0 :(得分:2)
您已创建指向ifstream
对象的指针,但您从未为其指定ifstream
。要解决这个问题,请考虑堆栈分配:
ifstream in;
in.open(args[1],ios::binary|ios::in);
//do stuff
in.close();
通常,您通常不需要动态分配对象,除非您希望它们比创建它们的函数更长。
希望这有帮助!