文件已创建,但是函数WriteFile无法在文件中写入,我需要在函数中创建文件,而不是在主目录中。
#include <stdio.h>
#include <stdlib.h>
void CreateFile(FILE *file){
file = fopen("file.txt","w");
if(file == NULL){
printf("Error : Could not create the file");
}
}
void WriteFile(FILE *file){
fprintf(file,"Hello !");
}
int main()
{
FILE *file = NULL;
CreateFile(file);
WriteFile(file);
fclose(file);
return 0;
}
最佳答案
问题不在于文件,而是您对指针的使用。在C语言中,函数参数按值传递:这意味着在代码中调用CreateFile(file);
时,将给出file
的值,即NULL
。
您有两种方法可以解决此问题,可以使用双指针:
void CreateFile(FILE **file);
像这样调用函数:
FILE *file;
CreateFile(&file);
或者,您可以
return
从CreateFile()
的值:FILE *CreateFile(void);
FILE *file = CreateFile();
(编辑:我没有看到@Hans PetterTaugbølKragset的答案...)
关于c - 如何在函数中创建文件并在其他函数中使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46347681/