繁体   English   中英

将多行输出到文本文件

[英]Outputting multiple lines to a text file

我之前已经做过,但是找不到示例代码...对于c ++还是新的。

我需要将多行输出到一个文本文件。 现在它仅输出最后一行,因此我假设每次循环运行时它都会覆盖前一行。 我如何获取它以输出一行然后输出到下一行等,而不用覆盖前一行?

这是一个片段:

    int main()
{
    int n = 1;

    while (n <= 100)
    {
        int argument = 0 + n;

        ofstream textfile;
        textfile.open ("textfile.txt");
        textfile << argument << endl;
        textfile.close();

        ++n;
    }

    return 0;
}

在进入循环之前打开文件,在退出循环之后关闭文件。

看起来默认的打开模式是覆盖,因此它将仅覆盖文件中的任何内容以及当前写入文件中的内容。

下面是保持文件句柄打开而不是多次重新打开的方法。 如果仍要追加,则应使用以下命令:

textfile.open ("textfile.txt", ios::out | ios::app);

这将打开文件进行输出,并追加到文件末尾。

int main()
{
int n = 1;

ofstream textfile;
textfile.open ("textfile.txt");

while (n <= 100)
    {
    int argument = 0 + n;

    textfile << argument << endl;

    ++n;
    }
textfile.close();

return 0;
}

您应该在循环外部打开和关闭文件。 打开文件时,默认为覆盖。 您可以指定附加模式,但是由于打开文件的过程有些冗长,因此在这种情况下,您实际上并不想这样做。

使用它代替:

int main()
{
    int n = 1;

    while (n <= 100)
    {
        int argument = 0 + n;

        ofstream textfile;
        textfile.open ("textfile.txt", ofstream::out | ofstream::app);
        textfile << argument << endl;
        textfile.close();

        ++n;
    }

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM