在将数据写入文件的迭代中,我希望将数据写入不同的行。
看起来像这样:
0.2 0.3
1 2
0.4 0.5 cursor should be here
现在我将追加数据:
0.6
3.
0.6
所以我需要回到第一行append 0.6,然后移到append 3,然后移到0.6。
如何使用c++做到这一点?我使用ofstream作为附加模式打开文件,现在我正在使用带有stl c++11的c++。seekp似乎只移动了一个字符步长,而不是一行步长。有什么想法吗?谢谢。
发布于 2016-10-11 15:13:53
追加模式只适用于将数据添加到文件的末尾,而不是像您希望的那样添加到中间的位置。
为此,您几乎需要逐行复制文件,并适当地添加数据,一般顺序如下:
std::vector<double> additions { 0.6, 3, 0.6 };
std::string line;
for (int i=0; i<3; i++) {
std::getline(infile, line);
outfile << line;
outfile << " " << additions[i];
}https://stackoverflow.com/questions/39972029
复制相似问题