[英]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.