Fclose ( fp );

Можно было также вместо sizeof(Book)написать sizeof(b), поскольку запись b– это

как раз один экземпляр структуры Book. Функция freadвозвращает число удачно прочитанных элементов (в нашем случае – структур). Поэтому если в примере переменная nравно нулю,чтение закончилось неудачно и надо вывести сообщение об ошибке.

Для записи структуры в двоичный файл используют функцию fwrite. Ее параметры – те

же, что и у fread. Пример ниже показывает добавление структуры в конец двоичного файла

books.dat.

Book b;

FILE *fp;

// здесь надо заполнить структуру

fp = fopen("books.dat ", "ab");

fwrite(&b, sizeof(Book), 1, fp);

Fclose ( fp );

Копирование

Пример.Пусть в памяти выделено две структуры одного типа и в одну из них записаны какие-то данные. Требуется скопировать все данные из первой структуры во вторую.

Пусть структуры имеют тип Bookи называются b1и b2. Существуют три способа решения этой задачи. Самый сложный – копирование каждого поля отдельно:

Book b1, b2;

// здесь заполняем структуру b1

Strcpy ( b2.author, b1.author );

Strcpy ( b2.title, b1.title );

b2.year = b1.year;

b2.pages = b1.pages;

Можно использовать специальную функцию memcpy, которая умеет копировать блоки памяти.Для ее использования надо подключить к программе заголовочный файл mem.h.

#include <mem.h>








Дата добавления: 2015-10-05; просмотров: 768;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.