/
vladislavANA
/
Programming
Обзор
Документация
Войти
/
vladislavANA
/
Programming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
LR_7/file_readstruct.c
77 строк
3 KB
vladislavANA
create LR_7/file_readstruct.c
20 мар 2025, 16:36
20 мар 2025, 16:36
27f0720
Код
Авторство
О чём код?
#include <stdio.h> #include <stdlib.h> #include <string.h> // Структура, представляющая студента. struct Student { char name[50]; // Имя студента. int age; // Возраст студента. float grade; // Оценка студента. }; // Функция для записи массива структур Student в бинарный файл. // Аргументы: // filename - имя файла для записи. // students - массив структур Student. // count - количество элементов в массиве. void writeStudents(const char *filename, struct Student students[], int count) { // Открываем файл для записи в бинарном режиме. FILE *fp = fopen(filename, "wb"); if (fp == NULL) { // Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу. perror("Ошибка создания бинарного файла"); exit(EXIT_FAILURE); } // Записываем массив структур в файл. fwrite(students, sizeof(struct Student), count, fp); // Закрываем файл после записи. fclose(fp); } // Функция для чтения массива структур Student из бинарного файла. // Аргументы: // filename - имя файла для чтения. // students - массив структур Student, в который будут загружены данные. // count - количество элементов в массиве. void readStudents(const char *filename, struct Student students[], int count) { // Открываем файл для чтения в бинарном режиме. FILE *fp = fopen(filename, "rb"); if (fp == NULL) { // Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу. perror("Ошибка открытия бинарного файла"); exit(EXIT_FAILURE); } // Читаем массив структур из файла. fread(students, sizeof(struct Student), count, fp); // Закрываем файл после чтения. fclose(fp); } int main(void) { // Инициализация массива структур Student для записи в файл. struct Student studentsToWrite[2] = { {"Иванов", 20, 4.5f}, {"Петров", 22, 3.8f} }; // Запись массива структур в бинарный файл. writeStudents("students.bin", studentsToWrite, 2); // Массив для хранения данных, прочитанных из файла. struct Student studentsRead[2]; // Чтение массива структур из бинарного файла. readStudents("students.bin", studentsRead, 2); // Вывод данных на экран. for (int i = 0; i < 2; i++) { printf("Студент: %s, Возраст: %d, Оценка: %.2f\n", studentsRead[i].name, studentsRead[i].age, studentsRead[i].grade); } return 0; }