我正在尝试制作一个将高分实现到.txt文件中的游戏。我的问题是:当我做出如下声明时:
ofstream fout("filename.txt");
是创建具有该名称的文件,还是仅查找具有该名称的文件?
问题是,每当我重新启动程序并做出以下声明时:
fout << score << endl << player;
它覆盖了我之前的分数!
有没有办法让我在写入文件时,新的分数不会覆盖旧的分数?
发布于 2011-11-22 08:01:32
默认情况下,std::ofstream
会创建一个新文件。您必须使用append parameter创建文件。
ofstream fout("filename.txt", ios::app);
发布于 2011-11-22 08:00:55
如果您只是想附加到文件的末尾,您可以在append模式下打开文件,这样任何写入都会在文件的末尾完成,并且不会覆盖以前存在的文件的内容:
ofstream fout("filename.txt", ios::app);
如果你想用数据覆盖特定的文本行,而不是仅仅用追加模式将它们附加到末尾,你可能更好地读取文件并解析数据,然后修复它(添加任何东西,删除任何东西,编辑任何东西),并将其重新写回文件中。
https://stackoverflow.com/questions/8220196
复制相似问题