我在C ++中有一个问题。我保存了一个.dat文件,它当前输出为:
1 2 3 4 5 6 ......(2n列,单行间距)
但是,我希望我的.dat文件看起来像:(n * 2矩阵格式,制表符间距)
1 2
3 4
5 6
有人可以帮忙吗?
P.S。我在第一次写作时无法更新我的文件,因为它是用Palabos(一个开源CFD求解器)编写的,我输出的值是一个二维张量。 (我输出.dat文件的代码(如果需要)):
for (int iLevel = 0; iLevel<3; ++iLevel){
ofstream ofile("profile.dat");
std::auto_ptr< MultiTensorField2D< T, 2 > > vel = plb::computeVelocity (lattice.getComponent(iLevel));
ofile << *vel << " ";} // here I'm using " " instead of endl;
编辑:我不能使用ofile&lt;&lt; \ t&lt;&lt; * vel&lt;&lt; \ n因为* vel在一次迭代中输出大约500个值。对此感到抱歉。
非常感谢您提前。 - 玛纳斯
答案 0 :(得分:0)
如果我理解你的问题,只需使用'\ t'作为标签,'\ n'作为换行符。
答案 1 :(得分:0)
如果要创建新的文本行,只需将"\n"
或endl
写入文件即可。对于间距(使用制表符),将"\t"
写入文件。所以它看起来像这样:
ofile << "\t" << *vel << "\n";
这会在值之前添加一个空格,并将下一个写入新行。将它与if语句一起使用以获得所需的结果。