我有一个包含许多记录的文本文件。每条记录都存储在一行长度为100个字符的行中。
假设我想直接访问第n条记录。我可以使用for循环,读取n行直到我到达记录。
但我怎么能直接访问它?
答案 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.