Fopen没有打开文件,但文件存在

时间:2014-05-01 17:29:24

标签: c++ fopen

我写

FILE * new_file = fopen("Penguins.jpg","rb");

我完全相信文件存在且位于正确的目录中。我还尝试了很多各种模式,例如"rb+" "r"。我也像fopen("C:\Penguins.jpg","rb");那样追踪路径Compilator总是说:

enter image description here

此外,openCV打开文件。但我需要FILE*。怎么了?

2 个答案:

答案 0 :(得分:3)

为了表示字符串中的特殊字符,必须在其前面加上反斜杠。

由于反斜杠本身也是一个特殊字符,因此必须先加上另一个反斜杠。

所以改变一下:

fopen("C:\Penguins.jpg","rb");

对此:

fopen("C:\\Penguins.jpg","rb");

请注意,您需要将应用于作为代码一部分的字符串,即由编译器“处理”的字符串,而不是预处理器的字符串(例如包含的名称)头文件,例如)。

答案 1 :(得分:2)

根据http://www.cplusplus.com/reference/cstdio/fopen/

的fopen文件

文件打开成功后,该函数返回一个非空指针:

  

如果文件成功打开,该函数将返回一个指向FILE对象的指针,该对象可用于在将来的操作中标识流。   否则,返回空指针。

因为您的变量new_file new_file->_ptr)有效,所以应该打开该文件。