我正在尝试一种有效的方法来读取包含数千行的文件。每行以关键字开头。我想阅读关键字,如果它满足某些条件(例如atoi(keyword)> 5),那么我将阅读整行,否则转到下一行。

有有效的方法吗?我不希望阅读和拆分每一行,除非满足关键字条件(每行都很庞大)。我只能访问标准库功能。

最佳答案

实际上,您别无选择,只能读取整行-一行延伸到下一个新行字符,因此,如果不读取这些字符,您将无法识别一行的结尾和下一行的开始。

如果您具有离线预处理的功能,则可以对文件进行预索引以找到每行的开头,以便可以读取行的开头,如果不符合标准,则直接查找到下一行的开头。这增加了整体带宽的使用率,但在重要时可以提高速度。

取决于您所指的是一条巨大的线,它可能并没有做很多(如果有的话)真正的好处。如果“巨大”意味着几兆字节,则可能会大有帮助。如果“巨大”意味着数百个甚至数千个字节,那么它可能比仅读取所有数据要慢。

07-24 09:44
查看更多