我拼命试图通过使用fstream:列来产生格式化的输出。
有两个函数(无论哪个函数Func1,Func2)都会产生输出(写到同一文件“example.dat”):
#include <fstream>
int main()
{
std::ofstream fout;
fout.open("example.dat");
for (int i=0; i<10; i++)
{
fout << Func1(i) << std::endl;
};
// Func2 depends on Func1, thus them **cannot** be written at the same time:
// fout << Func1() << " " << Func2() << std::endl;
for (int i=0; i<10; i++)
{
fout << Func2(i) << std::endl;
};
return 0;
}
输出将类似于:
函数1(0)
函数1(1)
。
。
。
函数1(9)
函数2(0)
函数2(1)
。
。
。
函数2(9)
我的问题是:如何将输出生成为两列:
函数1(0)函数2(0)
Func1(1)Func2(1)
。
。
。
虽然它们不是同时写的。
我怀疑我需要使用seekp(),tellp(),但不幸的是,我并不是一个高手。
请帮忙!
先感谢您。
最佳答案
vector<ostringstream> streams(10);
for (int i=0; i < 10; ++i)
{
streams[i] << Func1(i);
}
for (int i=0; i < 10; ++i)
{
streams[i] << " " << Func2(i);
}
ofstream fout("example.dat");
for (int i=0; i < 10; ++i)
{
fout << streams[i].str() << endl;
}