Функция fwrite используется для записи структур в бинарный файл. Эта функция определена в библиотеке cstdio, или более старой stdio.h.
Данная функция позволяет записывать любые структуры, главное указать размер таких элементов. Прототип fwrite выглядит так:
1 |
size_t fwrite( const void * ptrvoid, size_t size, size_t count, FILE * filestream ); |
- где ptrvoid - это записываемая структура,
- size - размер одного элемента такой структуры,
- count - количество элементов,
- filestream - файл в который записываются данные.
Рассмотрим пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> struct pair { char a; char b; }; int main () { FILE *ptrFile = fopen ("file.txt" , "wb" ); pair buffer[3] = {{'w' , 'a'},{'s' , 'c'},{'r' , 't'} }; fwrite(buffer , sizeof(char)*2 ,3 , ptrFile ); fclose(ptrFile); return 0; } |
В данном примере создана пользовательская структура, состоящая из 2 символов. После этого мы открываем файл и записываем массив из 3 структур типа pair. Для этого выделяем при записи место для 3 элементов, каждый из которых занимает в 2 раза больше места, чем символ. Данные записаны, можно закрывать файл.