我希望有一个基本问题可以解决。当我使用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/

10-11 00:21