将有限数量的行写入文本文件的算法

Jan*_*ott 5 c++ algorithm text file

我有一个程序,我需要非常频繁地将文本行写入日志文件.我想将日志文件中的行数限制为1000.当我将行写入文件时,它应该正常附加它们.一旦文件达到1000行,我想摆脱第一行,然后附加新行.有没有人知道是否有办法这样做,而不是每次都重写整个文件?

Sco*_*ica 0

任何时候你想记录,你都可以打开文件,读取你的写入索引,跳转到该位置,并写入固定宽度的日志条目。当您的指数达到上限时,只需将其设置回 0 即可。

不过,有很多警告 - 首先是每个正确的日志条目(假设您在其间关闭文件)将需要打开、读取、查找、写入、查找、写入和关闭 -要找到您的索引,请转到它,写入新条目,然后更新您的索引。您还存在编写固定大小数据元素的固有问题。此外,人类读者将根据您的内容来了解​​文件的“开头”在哪里。大多数人期望“1 号线”是第一条线。

我更倾向于简单地拥有几个文件并“滚动”它们,以便每个文件本身都是连贯的,但如果您只想要一个具有固定行数的文件,则循环缓冲区的想法可以发挥作用。