【发布时间】:2023-06-18 03:38:02
【问题描述】:
所以我循环数据文件以便根据每个数据文件进行计算(计算是针对每个文件中的 20 个 bin 完成的,因此每个文件有 20 个结果)。然后,我想将每个计算放入一个 csv 文件中,以便能够对每个文件的计算进行平均。
每次循环文件时,我都会在单元格 A1 到 A20 中获得一个包含 20 个结果的 csv 文件。
但是,我想要的是一个 csv 文件,其中 20 个结果在单元格 A1 到 A20 中,另外 20 个结果在单元格 B1 到 B20 中等等。最多 20 个结果在单元格 CV1 到 CV20 中。
我在每个循环中的代码输出数据如下所示:
ofstream ofs (path2 + "tanShears.csv", ofstream::out);
for (int j = 0; j < r.size(); j++) {
ofs << tShears[j] << endl;
显然,当我这样做时,我只会在单元格 A1 到 A20 中得到 20 个结果,这些结果对应于循环中的最终数据集,因为每个循环只会覆盖前一个循环。
有什么想法可以针对 csv 文件中的特定单元格,以便我可以将每个循环的结果输出到同一个 csv 文件的不同部分?
【问题讨论】:
-
将整个文件读入vector的vector,改变你需要改变的部分,然后把整个写回去。
-
或者,不要一直关闭并重新打开输出文件。在外循环开始时打开一次,遍历所有数据文件,然后关闭它。
-
不要每次都打开ofstream,打开一次,连续写入