在写入文件时,避免覆盖现有文件的内容
Avoid contents of an existing file to be overwritten when writing to a file
我正在尝试制作一款实现高分的游戏。txt文件。我的问题是:当我做这样的陈述时:
ofstream fout("filename.txt");
这是创建一个具有该名称的文件,还是只是查找具有该名称的文件?
问题是,每当我重新启动程序并执行以下语句时:
fout << score << endl << player;
会覆盖我之前的分数!
当我写入文件时,是否有任何方法可以使新分数不覆盖旧分数?
std::ofstream
默认创建新文件。您必须创建带有append参数的文件。
ofstream fout("filename.txt", ios::app);
如果您只是想在文件末尾追加内容,那么您可以以追加模式打开文件,这样任何写入都在文件末尾完成,而不会覆盖先前存在的文件内容:
ofstream fout("filename.txt", ios::app);
如果您想用数据覆盖特定的文本行,而不是仅仅用追加模式将它们添加到末尾,那么您可能最好读取文件并解析数据,然后修复它(添加任何内容,删除任何内容,编辑任何内容)并将其全部重新写回文件。
相关文章:
- 使用ios:ate写入到流会覆盖现有文件
- 如何在 c++ 中覆盖相同的文本文件
- 每个文件(理想情况下是每个部分)的 clang 格式样式覆盖
- 在多个头文件中从接口声明被覆盖的函数时,如何避免重复代码?
- lnk1114无法覆盖原始文件"xxx.lib",错误代码32
- std :: ofstream,覆盖错误的文件行
- 覆盖现有的文本文件C
- 使用 std::cout 将"\r"写入文件会保存以前覆盖的行
- C++继承 - 覆盖功能,包括使用 "::" s、.h 文件和.cpp文件
- 如何在用户输入值后写入.csv文件的下一行,而不会覆盖以前的值?
- 需要在后代 .h 文件中重新声明被覆盖的函数
- 如何使用文件系统minifiter在网络共享驱动器上阻止文件覆盖
- 如何在标题文件中获取成员功能的正确代码覆盖范围
- C++删除或覆盖文件中的现有信息
- 覆盖生成文件中的宏常量
- 使用 tellg() 和 seekp() 覆盖文件
- C/C++ Linux 共享库能否通过将磁盘上自己的文件覆盖到较新版本来自动更新
- R Makevars 文件覆盖 R CMD 的默认 g++ 选项?
- 输出文件覆盖不正确
- 生成文件覆盖默认隐式规则