所以我有一个文本文件:
Dylan
6
其中Dylan
是玩家名称,6
是高分。
我想让它写出一个新的玩家高分,但是当我这样做时,它会覆盖我已经拥有的东西。
(如果你想看的话,这是我的其余代码)
cin >> chName;
ofstream myfile;
myfile.open("score.txt");
myfile << chName << "\n" << iScore << "\n\n";
myfile.close();
我如何跳过已经写好的内容? (也将在未来这样做)
我是C ++的新手,很抱歉,如果我的问题是vauge
由于
答案 0 :(得分:1)
您可以通过简单地使用以下内容打开文件以进行追加操作:
std::ofstream hiScores;
hiScores.open ("hiscores.txt", std::ios_base::app);
但是,从用户而不是技术角度来看,拥有有限的高分表(例如,10个条目)更为常见。在这种情况下,您可能希望打开它进行读/写,读取当前的高分,调整内存结构以进行修改,然后将其写回。
这将允许您保持高分表有限,预先排序以便阅读并且可以轻松更新。虽然没有必要,但我也倾向于每个玩家使用一行,这样文件很容易被人类阅读:
Jon Skeet 759 Darin Dimitrov 576 BalusC 549 Hans Passant 530 Marc Gravell 526 VonC 476 CommonsWare 451 SLaks 436 Greg Hewgill 401 paxdiablo 387
答案 1 :(得分:0)
您应该附加到文件:(ios :: app)
ofstream myfile;
myfile.open ("myfile.txt", ios::out | ios::app);
if (myfile.is_open())
{
myfile << "This is a line.\n";
myfile << "This is another line.\n";
myfile.close();
}
答案 2 :(得分:0)
filestr.open("filename.txt", fstream::in | fstream::out | fstream::app);
应将新输入附加到文件