我有一个循环读取我的文本文件,当它找到符合我条件的匹配项时,我希望它将该行打印到新的文本文件中。我的代码可以正常工作,只是打印预览行而不是当前行,并且可以覆盖文本文件的第一行。

void FileManager::copyLine(std::string newLine)
{
    line1 = newLine;
    std::ofstream outFile("temp.txt");

    outFile << line1 << std::endl;
    outFile.close();
}

if (p1.getPos() == "WR")
        {
            if (line2.getPosWR1().empty())
            {
                line2.setWR1_Pos(p1.getPos());
                line2.setWR1_Name(p1.getName());
                line2.setWR1_Salary(p1.getSal());
                line2.setWR1_Projection(p1.getProj());
                file1.copyLine(line);
                wr1++;
            }
            else if (!line2.getPosWR1().empty() && line2.getPosWR2().empty())
            {
                line2.setWR2_Pos(p1.getPos());
                line2.setWR2_Name(p1.getName());
                line2.setWR2_Salary(p1.getSal());
                line2.setWR2_Projection(p1.getProj());
                file1.copyLine(line);
                wr2++;
            }

最佳答案

堆栈溢出新手:D但我找到了答案,这就是我所做的更改如此简单!

std::ofstream outFile("temp.txt", std::ios::app);
我只需要添加ios::app。追加到文件末尾。

10-02 14:44