Программирование на языке С. Наместников С.М. - 48 стр.

UptoLike

Составители: 

48
где *buffer – указатель на буфер памяти, из которого будут считываться данные
в файл; size – размер элемента в байтах; count - число записей; *stream
указатель на файл.
Приведем пример использования функций fwrite() и fread().
Листинг 13. Использование функций fwrite() и fread().
#include <stdio.h>
void main( void )
{
FILE *stream;
char list[30];
int i, numread, numwritten;
if( (stream = fopen( "fread.out", "wb" )) != NULL )
{
for ( i = 0; i < 25; i++ )
list[i] = (char)('z' - i);
numwritten = fwrite( list, sizeof( char ), 25, stream );
printf( "Wrote %d items\n", numwritten );
fclose( stream );
}
else printf( "Problem opening the file\n" );
if( (stream = fopen( "fread.out", "rb" )) != NULL )
{
numread = fread( list, sizeof( char ), 25, stream );
printf( "Number of items read = %d\n", numread );
printf( "Contents of buffer = %.25s\n", list );
fclose( stream );
}
else printf( "File could not be opened\n" );
}
В данном примере массив list выступает в качестве буфера для вывода и
ввода информации из бинарного файла. Сначала элементы буфера
инициализируются буквами латинского алфавита от z до b, а затем
записываются в файл с помощью функции fwrite( list, sizeof( char ), 25, stream ).
Здесь оператор sizeof( char ) указывает размер элемента (буквы), а число 25
соответствует числу записываемых букв. Аналогичным образом
осуществляется считывание информации из
файла fread( list, sizeof( char ), 25,
stream ), где в массив list помещаются 25 символов, хранящихся в файле.
Функции fwrite() и fread() удобно использовать при сохранении данных
структуры в файл. Запишем пример хранения информации по двум книгам в
бинарном файле.
Листинг 14. Пример сохранения структур в бинарном файле.
#include <stdio.h>
#define N 2
struct tag_book
{