如何在g ++中直接访问文本文件的某个部分?

时间:2010-03-25 09:06:21

标签: c++ g++ seek

我有一个包含许多记录的文本文件。每条记录都存储在一行长度为100个字符的行中。

假设我想直接访问第n条记录。我可以使用for循环,读取n行直到我到达记录。

但我怎么能直接访问它?

2 个答案:

答案 0 :(得分:4)

如果每一行的长度恰好是100个字符,并且行尾总是\n(即没有\r\n个东西)并且没有空行,人们不会使用1个制表符8个空格等你可以使用(使用ifstream)

fin.seekg(101 * n, ios::beg);  // Assume the initial record has n=0.

或(使用FILE *)

fseek(f, 101 * n, SEEK_SET);

如果您不确定任何先决条件,请使用循环。

答案 1 :(得分:0)

您可以使用seekg功能:

ifstream is("test.txt");
is.seekg ( (n-1)*100, ios::beg); // move the get pointer to the beg of nth record.