更改输出文件的外观(C ++) - 需要先读取然后以不同的格式写入

时间:2017-03-14 02:21:20

标签: c++

我在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个值。对此感到抱歉。

非常感谢您提前。 - 玛纳斯

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,只需使用'\ t'作为标签,'\ n'作为换行符。

答案 1 :(得分:0)

如果要创建新的文本行,只需将"\n"endl写入文件即可。对于间距(使用制表符),将"\t"写入文件。所以它看起来像这样:
ofile << "\t" << *vel << "\n";
这会在值之前添加一个空格,并将下一个写入新行。将它与if语句一起使用以获得所需的结果。