[英]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.