簡體   English   中英

C ++:如何優化復制其余的.txt文件?

[英]C++: How can I optimize copying the rest of a .txt file?

我有很大的文本文件,需要將代碼(時間)嵌入其中,這是整個文件過程的一部分。 我通過遍歷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();

使用此buffer-pointer命令,以前在一分鍾內執行的操作現在只需幾秒鍾。 新代碼:

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();

謝謝所有發表評論的人; 您提供的信息非常豐富,現在我比問這個問題時了解的更多!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM