我有这样的代码工作。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *File_fp = fopen("Example.dat", "w");
char Temporary[50];
if(!File_fp)
{
printf("An error occurred while creating the file.\n");
exit(1);
}
fprintf(File_fp, "This is an example.\n");
fgets(Temporary, 49, File_fp);
printf("It was \"%s\"\n", Temporary);
return EXIT_SUCCESS;
}
我在文件 "Example.dat "中打印了 "This is an example.",我想通过上面的代码从文件中再次读取它,但输出中没有字符串。为什么会这样?请帮助我。
要读取一个文件,你必须使用 "r "模式。例子:你在这段代码中犯了一个错误。FILE *File_fp = fopen("Example.dat", "r");
你在这段代码中犯了一个错误. 如果创建文件失败。fopen() 函数将返回 NULL. 那么文件指针的值将是 NULL所以,在你的代码中 如果节 将在文件成功创建时执行。所以,把你的代码改成这样。
if(File_fp)
{
printf("An error occurred while creating the file.\n");
exit(1);
}
只要把 (!)不合逻辑 符号。
你正在以只写模式("w")打开文件。使用 "w+"进行读写。
FILE *File_fp = fopen("Example.dat", "w+");