我有很大的文本文件,需要将代码(时间)嵌入其中,这是整个文件过程的一部分。我这样做是通过遍历 ifstream 到需要插入代码的点,然后遍历文件的其余部分,并将数据连续复制到一个新的 流 文件。
这些文件很大,几乎所有这种简单的复制和粘贴操作都发生在代码插入之后。这需要一段时间才能执行。 我想知道是否有一种方法可以优化批量复制文件的其余部分(而不是逐个单词地迭代文件的其余部分)。这是相关的代码段:
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++;
}
答案 0 :(得分:2)
皮特·贝克尔(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();
感谢所有发表评论的人;您提供的信息非常丰富,现在我比问这个问题时了解的更多!