首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >避免在写入文件时覆盖现有文件的内容

避免在写入文件时覆盖现有文件的内容
EN

Stack Overflow用户
提问于 2011-11-22 07:51:52
回答 2查看 39.5K关注 0票数 17

我正在尝试制作一个将高分实现到.txt文件中的游戏。我的问题是:当我做出如下声明时:

代码语言:javascript
复制
ofstream fout("filename.txt");

是创建具有该名称的文件,还是仅查找具有该名称的文件?

问题是,每当我重新启动程序并做出以下声明时:

代码语言:javascript
复制
fout << score << endl << player; 

它覆盖了我之前的分数!

有没有办法让我在写入文件时,新的分数不会覆盖旧的分数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-22 08:01:32

默认情况下,std::ofstream会创建一个新文件。您必须使用append parameter创建文件。

代码语言:javascript
复制
ofstream fout("filename.txt", ios::app); 
票数 34
EN

Stack Overflow用户

发布于 2011-11-22 08:00:55

如果您只是想附加到文件的末尾,您可以在append模式下打开文件,这样任何写入都会在文件的末尾完成,并且不会覆盖以前存在的文件的内容:

代码语言:javascript
复制
ofstream fout("filename.txt", ios::app);

如果你想用数据覆盖特定的文本行,而不是仅仅用追加模式将它们附加到末尾,你可能更好地读取文件并解析数据,然后修复它(添加任何东西,删除任何东西,编辑任何东西),并将其重新写回文件中。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8220196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档