C语言文件读取闪退!!!

代码如下(因为是文字游戏,代码太长,所以发一下存档的代码和读取代码)

第一次开exe,创建存档,关闭,读取都可以

但是关机后再读取便会闪退

void load(void)//读取游戏存档
{
	fp = fopen("file.txt", "r");
	fscanf(fp, "%s\n", name);
	fread(&LV, sizeof(LV), 1, fp);
	fread(&MAXhp, sizeof(MAXhp), 1, fp);
	fread(&MINhurt, sizeof(MINhurt), 1, fp);
	fread(&MAXhurt, sizeof(MAXhurt), 1, fp);
	fread(&MAXneng, sizeof(MAXneng), 1, fp);
	fread(&cheng, sizeof(cheng), 1, fp);
	fread(&huan, sizeof(huan), 1, fp);
	fread(&guai, sizeof(guai), 1, fp);
	fread(&x, sizeof(x), 1, fp);
	fread(&exp1, sizeof(exp1), 1, fp);
	fread(&zy, sizeof(zy), 1, fp);
	fread(&money, sizeof(money), 1, fp);
	fread(&libao, sizeof(libao), 1, fp);
	fclose(fp);
	fp = fopen("struct.txt", "r");
	fread(&zhuangbei, sizeof(zhuangbei), 5, fp);
	fclose(fp);
}
void save(void)//保存游戏
{
	fp = fopen("file.txt", "r+");
	fprintf(fp, "%s\n", name);
	fwrite(&LV, sizeof(LV), 1, fp);
	fwrite(&MAXhp, sizeof(MAXhp), 1, fp);
	fwrite(&MINhurt, sizeof(MINhurt), 1, fp);
	fwrite(&MAXhurt, sizeof(MAXhurt), 1, fp);
	fwrite(&MAXneng, sizeof(MAXneng), 1, fp);
	fwrite(&cheng, sizeof(cheng), 1, fp);
	fwrite(&huan, sizeof(huan), 1, fp);
	fwrite(&guai, sizeof(guai), 1, fp);
	fwrite(&x, sizeof(x), 1, fp);
	fwrite(&exp1, sizeof(exp1), 1, fp);
	fwrite(&zy, sizeof(zy), 1, fp);
	fwrite(&money, sizeof(money), 1, fp);
	fwrite(&libao, sizeof(libao), 1, fp);
	fclose(fp);
	fp = fopen("struct.txt", "r+");
	fwrite(&zhuangbei, sizeof(zhuangbei), 5, fp);
	fclose(fp);
}

(本人才中学生,英语不是很好,故而一些变量名不要在意!)

还请大佬们帮忙解决一下!

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html