Бинарные файлы представляют собой последовательность символов длиной один байт, нумерация которых начинается с нуля. В конце файла стоит метка EOF – End Of File.
Объявляется бинарный файл так же, как и текстовый:
FILE *f;
где f – указатель на файл – имя логического файла,
FILE – служебное слово – только заглавными буквами!
Перед началом работы с файлом необходимо связать имя логического файла (файловую переменную) с соответствующим ему физическим файлом на внешнем носителе – открыть файл:
f=fopen(“путь”, “режим”);
где путь – полный путь к файлу на внешнем носителе,
режим – режим открытия файла:
rb – чтение (b – binary – бинарный, двоичный),
wb – запись,
ab – добавление в конец файла,
r+b – чтение с обновлением (rb + wb),
w+b – запись с обновлением,
a+b – добавление с обновлением.
FILE *f_bin;
f_bin=fopen(“D:/User/my_file.dat”, “wb”); // по указанному // пути создан бинарный файл // my_file.dat и открыт // для записи
Если файл с таким именем уже существовал, то он очищается (из него удаляется информация).
Форматированная запись (вывод) в файл осуществляется функцией
fprintf(указатель на файл, формат вывода, список вывода);
Пример: записать в файл my_file.dat строку символов abc12345+*-/%&@
FILE *f_bin;
const int n=15;
int i;
char d;
char str[n]=”abc12345+*-/%&@”;
f_bin=fopen(“D:/User/my_file.dat”, “wb”); // файл открыт // для записи
for (i=0; i<n; i++)
fprintf(f_bin, “%c”, str[i]); // запись в файлпосимвольно
fclose(f_bin); //после записифайл обязательно закрыть!
Структура файла my_file.dat:
abc12345+*-/%&@
Внимание! В бинарных файлах нельзя использовать символ перехода на новую строку.
Перед чтением (вводом) данных из файла его необходимо открыть для чтения:
f=fopen(“путь”, “rb”);
Если файл не найден, то значение указателя f будет равно NULL.
Форматированное чтение (ввод) из файла осуществляется посимвольно функцией
fscanf(указатель на файл, формат ввода, список ввода);
Прочитаем созданный бинарный файл посимвольно и выведем на экран:
f_bin=fopen("D:/User/my_file.dat", "rb");
while (!feof(f_bin)) // пока не конец файла
{
fscanf(f_bin, "%c", &d); // читаем очереднойсимвол // в переменную d
printf("%c", d);
}
На экран будет выведено:
abc12345+*-/%&@
Над бинарными файлами определены следующие операции: