问题是如何使输出文件在第1行有1
,在第2行有2
等等,因为每次循环执行时你都会重写文件而你就离开了仅在输出文件中使用9
。
#include <fstream>
using namespace std;
void function (int i)
{
ofstream output("result.out");
output << i << endl;
output.close();
}
int main()
{
for (int i=1; i<10; i++)
{
function(i);
}
return 0;
}
答案 0 :(得分:6)
将std::ios::app
作为std::ofstream
构造函数的第二个参数传递。即。
std::ofstream output("result.out", std::ios::app);
答案 1 :(得分:0)
如果你真的想按照自己的方式去做:
void function (int i)
{
ofstream output("result.out", std::ios::app);
output << i << endl;
output.close();
}
int main()
{
for (int i=1; i<10; i++)
{
function(i);
}
return 0;
}
添加 ios :: app 不会删除文件的内容,但会向其附加文字。它有一个缺点 - 如果你想再次调用循环,旧数据仍然存在。
但我建议将 for()循环移动到函数中。
void function (int i)
{
ofstream output("result.out");
for(int j = 1, j < i; j++
output << j << endl;
output.close();
}
int main()
{
function(10);
return 0;
}
结果相同,您可以避免重复打开和关闭文件,仍然可以将其用作函数。