我有大文本文件,我需要嵌入代码(时间),通过文件的一部分。我这样做是通过迭代ifstream到代码需要插入的点,然后继续迭代文件的其余部分,不断将数据复制到新的ofstream文件中。
这些文件很大,几乎所有这些简单的复制和粘贴操作都在代码插入后发生。这需要一段时间才能执行。我想知道是否有一种方法可以优化批量复制文件的其余部分(而不是对文件的其余部分进行逐字迭代)。这是相关的代码段:
while (!in.eof())
{
in >> value;
if ((counter > 392) && (counter < 399) && (timePosition < 6))
{
rounded = floorf(value * 1000) / 1000;
value = rounded + (time[timePosition] * .00001);
timePosition++;
}
out << value << " ";
counter++;
}
Pete Becker上面的回答正是我们所需要的。
out << in.rdbuf();
使用此缓冲区指针命令,现在用一分钟执行的操作现在需要几秒钟。新代码:
while (counter < 399)
{
in >> value;
if ((counter > 392) && (counter < 399) && (timePosition < 6))
{
rounded = floorf(value * 1000) / 1000;
value = rounded + (time[timePosition] * .00001);
timePosition++;
}
out << value << " ";
counter++;
}
out << in.rdbuf();
感谢所有评论过的人;你的信息非常丰富,而且我现在比我提出这个问题时知道的要多得多!