Бинарный файл

Для работы с бинарными файлами в языке C++ используется стандартная библиотека для работы с файлами (см. функции для работы с текстовыми файлами fscanf  и fprintf), но с небольшими изменениями.

Так, например, для чтения бинарного файла применяется параметр «rb», а не обычный «r». Аналогично и с модификаторами записи «w», добавления «a», чтения и записи «r+», «w+», «a+»: «wb», «ab», «rb+», «wb+», «ab+». Как и для обычных файлов наличие буквы w обозначает, что файл будет создан в случае отсутствия, а, если файл уже есть, то его содержимое будет удалено и заменено новым. А наличие буквы a значит, что файл будет создан в случае отсутствия, но содержимое файла не будет уничтожено.

Весь процесс идет по аналогии с обычным текстовым файлом, но есть некоторые нюансы. Работа идет именно с битами, так что возможна запись или считывание различных управляющих символов, например, “\n”, который заканчивает строку и начинает новую.

Так же еще одним моментом служит произвольный доступ к данным в бинарном файле. Благодаря  функции

можно получить доступ к любому участку файла. Причём SEEK_SET означает, что отсчёт идёт от начала файла, SEEK_CUR - от курсора, SEEK_END - от конца файла. Для расчёта расстояния (количества бит, на которые сдвинется указатель) удобно использовать команду sizeof().

Также стоит отметить функцию записи в файл

и аналогичную функцию чтения из файла с теми же параметрами.

Рассмотрим далее пример записи в бинарный файл и чтения из него. Записывать будем пакеты с данными, представленные с помощью структуры:

Не нашли ответ? Не беда, спросите в комментариях.

Ваш e-mail не будет опубликован. Обязательные поля помечены *