Функции С++ позволяют обмен данными с файлами последовательной и прямой организации, состоящими из записей фиксированной длины. При этом за одно выполнение одной функции в.в данных записями пересылаются одна и более записей. Запись представляется в виде одной переменной любого типа, кроме файлового. Переменная запись определяется программистом. При в/в данных записями надо использовать бинарные режимы доступа в операторах открытия файлов: wb, rb, ab, ab+.
При чтении записей из файла происходит их ввод в ОП, который производится функцией fread. Прототип функции ввода записей:
int fread (void * DstBuf, unsigned Size, int К, FILE *stream);
Где: DstBuf –по адресу указателя переменной любого типа (записи) в ОП куда помещается запись, прочитанная из файла;
Size – длина записи в байтах, определяется функцией sizeof(тип);
К – количество считываемых записей из файла размером Size;
stream – имя указателя, связанного с файлом для чтения.
Функция fread читает К записей длины Size из входного потока stream и помещает их по адресу DstBuf (структуры). После этого указатель файла, связанный с потоком stream, увеличивается на количество прочитанных байтов = Size * К, и функция fread готова прочесть из файла следующую группу байтов. Чтение из файла происходит от нулевого элемента, до символа конца файла. Функция fread возвращает результат целого типа, который является результатом анализа конца файла:
1. если результат = 1 (истина) запись считана;
2. если результат = 0 (ложь) запись не считана, обнаружен конец файла.
Вывод записей из ОП в файл производится функцией fwrite. Прототип фунции:
int fwrite (const void * DstBuf, unsigned Size, int К, FILE *stream);
Назначение формальных параметров функции fwriteаналогично параметрам функции fread. Функция выводит К записей из ОП по адресу переменной DstBuf в файл, связанный с указателем . Указатель файла, связанный с потоком , увеличивается на количество выведенных байтов и устанавливается на позицию с которой можно производить следующий вывод записи в файл или признака конца файла.
Возвращаемое значение:
Целый тип возвращаемого параметра определяет количества записей, реально помещенных в файл. Если это меньше К, то имела место ошибка.