printf("\n%10s%20s%10s%7.2f%5d", gruppa, fam, name, sr_ball, ocenka); // и выводить их на экран
}
На экран будет выведено:
Таким образом, текстовые файлы могут хранить разнотипную информацию, что можно использовать для создания баз данных.
Бинарные файлы представляют собой последовательность символов длиной один байт, нумерация которых начинается с нуля. В конце файла стоит метка 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 и открыт // для записи
Если файл с таким именем уже существовал, то он очищается (из него удаляется информация).
Форматированная запись (вывод) в файл осуществляется функцией:
Пример: записать в файл my_file.dat строку символов abc12345+*-/%&@
FILE *f_bin;
const int n=15;
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.
Форматированное чтение (ввод) из файла осуществляется посимвольно функцией:
Прочитаем созданный бинарный файл посимвольно и выведем на экран:
f_bin=fopen("D:/User/my_file.dat", "rb");
while (!feof(f_bin)) // пока не конец файла
{
fscanf(f_bin, "%c", &d); // читаем очереднойсимвол // в переменную d
printf("%c", d);
}
На экран будет выведено:
abc12345+*-/%&@
Над бинарными файлами определены следующие операции:
a) перемещение указателя файла в заданную позицию
где позиция - количество байтов (символов), отстоящих от заданного места, параметр - SEEK_SET - начало файла,
- SEEK_CUR - текущая позиция файла,
- SEEK_END - конец файла.
Пример 1: прочитать символ из бинарного файла, отстоящий от начала файла на 9 байтов: