C ++ - 在文件末尾写入并跳过其余部分

时间:2015-03-14 07:59:05

标签: c++ file

所以我有一个文本文件:

Dylan
6

其中Dylan是玩家名称,6是高分。 我想让它写出一个新的玩家高分,但是当我这样做时,它会覆盖我已经拥有的东西。

(如果你想看的话,这是我的其余代码)

cin >> chName;
ofstream myfile;
myfile.open("score.txt");
myfile << chName << "\n" << iScore << "\n\n";
myfile.close();

我如何跳过已经写好的内容? (也将在未来这样做)

我是C ++的新手,很抱歉,如果我的问题是vauge

由于

3 个答案:

答案 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();
}

http://www.cplusplus.com/doc/tutorial/files/

答案 2 :(得分:0)

filestr.open("filename.txt", fstream::in | fstream::out | fstream::app);

应将新输入附加到文件