2014-03-31 10 views
2

Итак, я сохранил структуру в последовательном файле в этом формате "%d %s %s %f", что мне интересно, если я ищу последнюю запись из файла, и я использую fseek(*val,offset*-1,Seek_end, когда я использую fscanf, будет ли она читать назад? Так что я должен был бы прочитать "%f %s %s %d"?Seek_END ищет назад

ответ

2

Нет, это не приводит к тому, что последующие чтения возвращаются назад, читает всегда перейдите вперед.

Все, что он делает, устанавливает указатель на это расстояние от конца файла. Итак, если у вас есть файл, содержащий английские буквы, и вы ищете с -5 и SEEK_END, то следующие чтения дадут вам vwxyzв таком порядке.

+0

Обратите внимание, что общие описания 'fseek' несут предупреждение об использовании его с текстовыми файлами, например:« Текстовые файлы: либо ноль, либо значение, возвращаемое * ftell * ». (Http://www.cplusplus.com/reference/cstdio/fseek/) – usr2564301