как обратиться к n-ой строчке текстового файла, не считывая предыдущих

bvasilik

в Си?
Мне нужно занести в структуру элементы энной строки. Как можно это напрямую, не читая каким-нибудь sscanf-ом всё строчки подряд?
Помогите, пожалуйста...

vall

если ты их длины не знаешь - то никак.

mirt1971

Никак. В смысле без сканфа можно обойтись, но без чтения(так или иначе) всех данных из файла(до нужной строки) - нельзя.

bvasilik

Хорошо. А как без сканфа?
Я знаю длину каждой строчки, она одинакова.
Что будет работать быстрее всего? getc или есть какая другая хитрая функция?

olegusmaximus

gets читает всю строку

mirt1971

fseek( file, length*n, SEEK_SET );

bvasilik

SEEK_SET корректно отработается, если файл не бинарный, а текстовой?

mirt1971

Не знаю. У меня таких проблем не возникает. Открой как бинарный, кто тебе мешает. А еще лучше - почитай документацию на fseek.

bvasilik

Ок. Спасибо тебе и всем, кто попытался помочь!

maggi14

Если будешь открывать как бинарный, учти, что для текстовых файлов перевод строки отмечается одним символом, а на самом деле (и для бинарных в том числе) символа два.

Ivan8209

Зависит от ОС.
---
...Я работаю антинаучным аферистом...

maggi14

ессно. Вот пусть и учтет

Ivan8209

И извращённый способ через popen("sed ...").
---
...Я работаю антинаучным аферистом...
Оставить комментарий
Имя или ник:
Комментарий: