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+");
这将追加到文件中。
所以我试图将一堆数据保存在一个文本文件中以便稍后加载。 该函数正确地将数据打印到文本文件中,但是当我停止执行并再次启动它以查看它是否加载时,文本文件中没有数据。 它发生在我停止程序后。
这里是使用的函数:
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+");
这将追加到文件中。