Для записи и чтения структуры из бинарного файла в языке программирования C, вы можете использовать функции fwrite() и fread() соответственно.
Давайте представим, что у нас есть следующая структура в языке C:
typedef struct { int id; char name[20]; float salary; } Employee;
Теперь давайте создадим функцию, которая будет записывать структуру Employee в бинарный файл:
void writeEmployeeToFile(Employee employee, const char* filename) { FILE* file = fopen(filename, "wb"); // Открытие файла в режиме бинарной записи if (file == NULL) { printf("Ошибка при открытии файла.n"); return; } fwrite(&employee, sizeof(Employee), 1, file); // Записываем структуру в файл fclose(file); // Закрываем файл }
Функция fwrite()
принимает указатель на блок памяти, который нужно записать в файл (&employee
в данном случае), размер каждого элемента (sizeof(Employee)
в данном случае), количество элементов для записи (1 в данном случае) и указатель на файл, в который нужно осуществить запись (file
в данном случае).
Теперь давайте создадим функцию, которая будет читать структуру Employee из бинарного файла:
Employee readEmployeeFromFile(const char* filename) { FILE* file = fopen(filename, "rb"); // Открытие файла в режиме бинарного чтения if (file == NULL) { printf("Ошибка при открытии файла.n"); return; } Employee employee; fread(&employee, sizeof(Employee), 1, file); // Читаем структуру из файла fclose(file); // Закрываем файл return employee; }
Функция fread()
работает аналогично функции fwrite()
, но в данном случае мы передаем указатель на структуру, в которую должны быть прочитаны данные (&employee
в данном случае), размер каждого элемента (sizeof(Employee)
в данном случае), количество элементов для чтения (1 в данном случае) и указатель на файл, из которого нужно читать (file
в данном случае).
С использованием этих двух функций вы можете записывать и читать структуры из бинарных файлов в языке C.