目前,我在尝试打开文件时遇到下面的功能问题,无论我给它提供什么功能似乎都无法打开文件。我当前正在传递“ ./input.txt”,它是与可执行文件位于同一目录中的文件。你们看到的代码有什么公然的错误吗?
FILE* openInputFile(char* inputFileName)
{
FILE* ifp= NULL;
printf("%s\n", inputFileName);
ifp = fopen(inputFileName, "rb");
if(ifp == NULL)
{
printf("Error opening input file.\n");
}
return ifp;
}
最佳答案
您正在返回一个指向存储在堆栈中的内存的指针。当函数退出时,内存被释放,并且您指向未分配的内存。您必须将指针作为参数传递来返回文件名:
void openInputFile(char* inputFileName, FILE* ifp)
{
FILE* ifp= NULL;
printf("%s\n", inputFileName);
ifp = fopen(inputFileName, "rb");
if(ifp == NULL)
{
printf("Error opening input file.\n");
}
}
关于c - 在C中打开文件时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28616359/