我希望有一个基本问题可以解决。当我使用ofstream在c ++中写入文件时,它会在末尾添加一个空行。无论如何,有没有停止这种行为?下次运行程序时加载文件时,这会引起问题。
int saveScores(scoreboard sBoard, const string filename) {
ofstream outStream;
outStream.open("/Users/Wescat/Desktop/Programming/comp2710/wsc0010_project1/scores.txt");
if (outStream.fail()) {
cout << "Output file opening failed." << endl;
return 1;
}
int i = 0;
while (i < sBoard.numOfScores) {
outStream << sBoard.score->name << endl;
outStream << sBoard.score->score << endl;
sBoard.score = sBoard.score->next;
i++;
}
outStream.close();
return 0;
}
最佳答案
这是完全合理的。
您解释为空白行的方式只是您的文本编辑器在实际最后一行(由最终\n
生成)的末尾表示std::endl
字符的方式。将该字符保留在所有行的结尾是有意义的。确实,这就是“行尾”的意思!
如果这在您重新加载文件时引起问题,那么我建议您确实存在真正的错误。
关于c++ - Ofstream在文件末尾添加空白行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22925358/