C中停止执行后文件删除内容

File deletes content after stopping execution in C

所以我试图将一堆数据保存在一个文本文件中以便稍后加载。 该函数正确地将数据打印到文本文件中,但是当我停止执行并再次启动它以查看它是否加载时,文本文件中没有数据。 它发生在我停止程序后。

这里是使用的函数:

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);}

如果你 "stop the execution",那么我想 fclose 没有被调用,那么只有刷新的数据会出现在文件中。在调用 fprintf.

后,使用 fflush 手动强制刷新文件内容

另外,考虑从文件编辑器而不是程序检查文件内容。可能你没看对。

最后,如果您想扩展现有内容而不创建新文件,请考虑使用 "a" 选项打开文件。

你应该使用:

FILE * file= fopen("save.txt", "a+");

这将追加到文件中。