Итак, я сохранил структуру в последовательном файле в этом формате "%d %s %s %f"
, что мне интересно, если я ищу последнюю запись из файла, и я использую fseek(*val,offset*-1,Seek_end
, когда я использую fscanf
, будет ли она читать назад? Так что я должен был бы прочитать "%f %s %s %d"
?Seek_END ищет назад
2
A
ответ
2
Нет, это не приводит к тому, что последующие чтения возвращаются назад, читает всегда перейдите вперед.
Все, что он делает, устанавливает указатель на это расстояние от конца файла. Итак, если у вас есть файл, содержащий английские буквы, и вы ищете с -5
и SEEK_END
, то следующие чтения дадут вам vwxyz
в таком порядке.
Обратите внимание, что общие описания 'fseek' несут предупреждение об использовании его с текстовыми файлами, например:« Текстовые файлы: либо ноль, либо значение, возвращаемое * ftell * ». (Http://www.cplusplus.com/reference/cstdio/fseek/) – usr2564301