我写
FILE * new_file = fopen("Penguins.jpg","rb");
我完全相信文件存在且位于正确的目录中。我还尝试了很多各种模式,例如"rb+"
"r"
。我也像fopen("C:\Penguins.jpg","rb");
那样追踪路径Compilator总是说:
此外,openCV打开文件。但我需要FILE*
。怎么了?
答案 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
)有效,所以应该打开该文件。