Я использую ifstream
для анализа файла в коде на C++. Я не могу использовать seekg()
и tellg()
для перехода в определенную строку кода.ifstream Как начать чтение строки из определенной строки с помощью C++
В частности, я хотел бы прочитать строку с методом getLine из определенного положения файла. Позиция сохранена в предыдущей итерации.
Что вы подразумеваете под * «Позиция сохранена в предыдущей итерации». *? В каком смысле вы итерируете? Если вы выполняете итерацию по файлу, вы можете вызвать 'getline (my_ifstream, my_string)' для чтения каждой строки по очереди. Если у вас есть целостный номер строки и вы хотите перейти к этой строке из позиции, не имеющей отношения к файлу, вам нужно прочитать ее из некоторой позиции известной строки (например, строки 1 в позиции 0) и подсчитать вверх по новым линиям по мере продвижения. –
@TonyD Да, я повторяю файл, но в какой-то момент я останавливаюсь и работаю в другом файле. Затем после этого я хотел бы перезапустить из последней строки, прочитанной перед использованием 'getline (my_ifstream, my_string)' с первым файлом. – Mattia
каждый 'ifstream' поддерживает свою собственную позицию ввода - если вы используете разные объекты' ifstream' для разных файлов, вы можете продолжить чтение строк, в которых вы остановились в первом файле без каких-либо осложнений. Если вы действительно хотите использовать один и тот же 'ifstream', вы можете вызвать [' tellg'] (http://en.cppreference.com/w/cpp/io/basic_istream/tellg), чтобы получить текущую позицию, и 'seekg 'позже, чтобы восстановить его. –