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();
以前在一分钟内执行的事情现在使用这个缓冲区指针命令需要几秒钟。新代码:
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();
感谢所有发表评论的人;你提供了很多信息,我现在比问这个问题时知道的更多!
我有一些大文本文件,我需要在其中嵌入代码(时间),部分是通过文件。我通过遍历 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();
感谢所有发表评论的人;你提供了很多信息,我现在比问这个问题时知道的更多!