我有一個包含大量記錄的文本文件。每條記錄都存儲在一個長度爲100個字符的單行中。如何直接訪問g ++文本文件的某個部分?
假設我想直接訪問第n條記錄。我可以使用for循環來讀取,直到讀完記錄爲止。
但是我怎麼能直接訪問它?
我有一個包含大量記錄的文本文件。每條記錄都存儲在一個長度爲100個字符的單行中。如何直接訪問g ++文本文件的某個部分?
假設我想直接訪問第n條記錄。我可以使用for循環來讀取,直到讀完記錄爲止。
但是我怎麼能直接訪問它?
如果每個線長正好是100個字符和線條的結局總是\n
(即沒有0的東西),而且也沒有空行和人民贏得了「T使用1片爲8個空格等就可以使用(與ifstream的)
fin.seekg(101 * n, ios::beg); // Assume the initial record has n=0.
或(與FILE *)
fseek(f, 101 * n, SEEK_SET);
如果您不確定任何前提條件,請使用循環。
,你可以利用的seekg功能:
ifstream is("test.txt");
is.seekg ((n-1)*100, ios::beg); // move the get pointer to the beg of nth record.