Чтение и сохранение с помощью fgets () - PullRequest
1 голос
/ 20 сентября 2010

Я использую fgets для чтения текста из простых файлов, таких как txt, однако мне нужна возможность вернуться к предыдущим строкам. Есть ли способ сделать это с помощью fgets? Или мне просто хранить текст в каком-то массиве / структуре?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2010

fseek или комбинация fgetpos и fsetpos будет уместным. AFAIK, нет функции "перейти к строке X" ; вместо этого вам придется сохранять некоторую информацию о каждой строке (например, ее начальную позицию), используя fseek или fsetpos для перемещения.

1 голос
/ 20 сентября 2010

Вы можете решить свои проблемы с fseek() и друзьями (http://linux.die.net/man/3/fseek).

Однако, смешивая функции "fseek" с текстовыми файлами (особенно если вы читаетеи запись в тот же поток) может вызвать проблемы из-за перевода в библиотеку переносов строк.

Если вы не слишком ограничены в памяти, я бы пошел с сохранением информации из предыдущих строк.

Еще лучше, если возможно, пересмотреть свой алгоритм / структуру данных, чтобы вам не нужно было возвращаться.

...