【发布时间】:2012-05-09 09:58:26
【问题描述】:
我正在拼命尝试使用 fstream: columns 生成格式化输出。
有两个函数(无论函数 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;
}
输出将类似于:
Func1(0)
Func1(1)
.
。 .
Func1(9)
Func2(0)
Func2(1)
.
.
.
Func2(9)
我的问题是:如何将此输出生成为两列:
Func1(0) Func2(0)
Func1(1) Func2(1)
.
.
.
虽然它们不是同时写入的。
我怀疑我需要使用 seekp(),tellp(),但不幸的是我不是这方面的大专家。
请帮忙!
提前谢谢你。
【问题讨论】:
-
你不能把 Func1 和 Func2 的输出缓冲到 2
vector<string>中,这样你就可以输出列在一个循环中的结果了吗? -
您应该编辑您的问题以从标题中删除 (C++)。如果你有 c++ 标签,你不需要把它放进去。
-
Func1和Func2返回值的类型是什么?它们打印为固定大小的字符串吗? -
@Nicolas Repiquet:双类型函数
-
Func1是否存储了一些数据,Func2会使用它吗?在调用所有Func1s 之前不能调用Func2?以后能找回Func1的所有结果吗?