Считать данные из файла и вывести на экран список животных, указанной породы и возраста - C (СИ)
Формулировка задачи:
Вот мое задание на лабораторную работу:
Написать программу для обработки информации о животных, представленных на выставку кошек. Информация включает в себя:
Кличка.
Порода.
Возраст.
Программа должна позволять пользователю:
Считывать данные с клавиатуры и заносить их в файл.
Считывать данные из файла и выводить на экран список животных, указанной породы и возраста.
__________________________________________________________________________________________________________
Не могу понять как записать структуру в файл и как считать именно тех животных "указанной породы и возраста".
Пожалуйста помогите...
Решение задачи: «Считать данные из файла и вывести на экран список животных, указанной породы и возраста»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXNAMELEN 32
#define MAXBREEDLEN 64
typedef struct st_dog
{
char name[MAXNAMELEN];
char breed[MAXBREEDLEN];
unsigned short int age;
} dog;
int sd = sizeof(dog);
int main()
{
dog *myDog = malloc(sd);
strcpy(myDog->name, "Sharik");
strcpy(myDog->breed, "Dvornyajka");
myDog->age = 5;
FILE *f;
f = fopen("dat", "wb");
fwrite(myDog, sd, 1, f);
fclose(f);
/********************************************/
dog *readDog = malloc(sd);
f = fopen("dat", "rb");
fread(readDog, sd, 1, f);
printf("readDog: %s %s %d\n", readDog->name, readDog->breed, readDog->age);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и памятью.
- Определение максимальной длины имени и породы собаки в макросах.
- Создание структуры данных
собакас полями: имя (char), порода (char) и возраст (unsigned short int). - Вычисление размера структуры данных
собакав байтах. - Выделение памяти под указатель на структуру данных
собака. - Копирование значений в поля структуры данных
собака. - Открытие файла
datв режиме записи (wb). - Запись структуры данных
собакав файл. - Закрытие файла.
- Открытие файла
datв режиме чтения (rb). - Чтение структуры данных
собакаиз файла. - Вывод на экран значений полей структуры данных
собака. - Возврат 0, что означает успешный конец работы программы.