Я учусь использовать fread и fwrite прямо сейчас.
Насколько я понимаю, из документации кажется, что он просто читает или записывает в указанное количество байтов, но всегда с начала файла. Есть ли способ не начинать с начала файла или я неправильно понимаю функции?
И fread()
, и fwrite()
обычно читают или записывают в текущую позицию в файле. Исключение составляет случай, когда вы используете a
(добавлять) в качестве одной из букв режима; то все записи происходят в конец файла. Как уже отмечалось, вы можете изменить место чтения или записи данных с помощью fseek()
, за исключением случаев, когда действует режим добавления.
использовать fseek
int fseek(FILE *pointer, long int offset, int position)
pointer: pointer to a FILE object that identifies the stream.
offset: number of bytes to offset from position
position: position from where offset is added.
returns:
zero if successful, or else it returns a non-zero value
SEEK_END : It denotes end of the file.
SEEK_SET : It denotes starting of the file.
SEEK_CUR : It denotes file pointer’s current position.
Прочитайте документацию для
fseek
. Вы также можете прочитать о различных режимах, которые вы можете использовать сfopen
.