【发布时间】:2013-09-25 19:06:59
【问题描述】:
我在编译以下文件时收到 invalid conversion from void* to FILE* 错误。它将文件名作为参数并尝试打开文件,如果文件打开,则返回
文件指针 否则返回 NULL
#include <iostream>
#include <fstream>
using namespace std;
FILE* open(const char filename[]);
int main(int argc, char *argv[])
{
FILE* fp = open("test.txt");
}
FILE* open(const char filename[])
{
ifstream myFile;
myFile.open(filename);
if(myFile.is_open())
return myFile;
else
return NULL;
}
【问题讨论】:
-
从 NULL 到 FILE* 的转换是最少的问题。您还将从 std::ifstream 转换为 FILE*,它们是完全不同的结构,更不用说一个是局部变量,另一个是指针。此外,您不会从 main 返回值。
标签: c++ file file-io compiler-errors ifstream