如何在C中直接获取文本文件上的特定行?(无需逐行迭代)



有没有一种方法可以在不使用C逐行迭代的情况下获得文本文件中的特定行?

例如,我有一个文本文件names.txt,它包含以下名称;

John
James
Julia
Jasmine

我想立即访问"Julia",而不必遍历"John"one_answers"James"?,类似于,只需给定索引值"2"或"3"即可立即访问"Julia"。

有办法在C中做到这一点吗?

我只想知道如何处理,因为我想处理一个非常大的文本文件,大约有30亿行,我想立即访问其中的特定行,逐行迭代是非常慢的

您必须至少对所有行进行一次迭代。在这个迭代中,在读取一行之前,记录文件中的位置,并将其保存到数组或另一个文件(通常命名为索引文件(。文件应具有固定的记录大小,便于存储文本文件中的行外位置。

稍后,当您想要访问给定的行时,您可以使用数组来获取位置(行号是数组索引(或文件(您搜索文件以偏移记录大小的行号(并读取位置。一旦你得到了这个位置,你就可以看到这个位置的文本文件并读取这行。

每次更新文本文件时,都必须重新构造数组或索引文件。

还有其他方法可以做到这一点,但你需要更好地解释上下文。