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

时间:2018-01-05 18:55:29

标签: c file-handling

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

以下是使用的功能:

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

2 个答案:

答案 0 :(得分:3)

您应该使用:

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

这将附加到文件。

答案 1 :(得分:1)

如果你&#34;停止执行&#34;,那么我认为fclose没有被调用,那么只有刷新的数据才会出现在文件中。在调用fflush后,使用fprintf手动强制刷新文件内容。

另外,请考虑从文件编辑器而不是程序中检查文件内容。也许你没有正确阅读它。

最后,考虑用&#34; a&#34;打开文件。如果您要在不创建新文件的情况下扩展现有内容,则选项。