所以我试图在文本文件中保存一堆数据以便以后加载它。 该函数正确地将数据打印到文本文件,但是当我停止执行并再次启动它以查看它是否加载时,文本文件中没有数据。 它发生在我停止程序之后。
以下是使用的功能:
void saveGame(t_game game, int width, int height){
FILE * file= fopen("save.txt", "w+");
int i = 0;
int j = 0;
fprintf(file,"%d%d", game.origbomb, game.wincount);
for(i=0;i<width;i++){
for(j=0;j<height;j++){
fprintf(file,"%c",game.map[i][j]);
}
}
for(i=0;i<width;i++){
for(j=0;j<height;j++){
fprintf(file,"%c",game.bombmap[i][j]);
}
}
fclose(file);}
答案 0 :(得分:3)
您应该使用:
FILE * file= fopen("save.txt", "a+");
这将附加到文件。
答案 1 :(得分:1)
如果你&#34;停止执行&#34;,那么我认为fclose
没有被调用,那么只有刷新的数据才会出现在文件中。在调用fflush
后,使用fprintf
手动强制刷新文件内容。
另外,请考虑从文件编辑器而不是程序中检查文件内容。也许你没有正确阅读它。
最后,考虑用&#34; a&#34;打开文件。如果您要在不创建新文件的情况下扩展现有内容,则选项。