C ++:如何优化复制.txt文件的其余部分?

问题描述 投票:0回答:1

我有大文本文件,我需要嵌入代码(时间),通过文件的一部分。我这样做是通过迭代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++;
}
c++ optimization text ifstream ofstream
1个回答
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();

感谢所有评论过的人;你的信息非常丰富,而且我现在比我提出这个问题时知道的要多得多!

© www.soinside.com 2019 - 2024. All rights reserved.