Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Пример выполнения работы. Структура книга (поля: ФИО автора, название, издательство, год издания, число страниц)




Условие задачи:

Структура книга (поля: ФИО автора, название, издательство, год издания, число страниц). Создается массив книг размерности n. Сохраняется в файле и читается из файла. Файл открывается в двоичном режиме.

Для решения задач в среде Microsoft Visual Studio 2013 были созданы стандартные консольные приложения (проект типа Win32 Console Application) с установленным свойством «пустой проект» (Empty project). В каждый из проектов добавлен файл с расширением .cpp, исходные коды которых приведены ниже.

Листинг программы с комментариями для записи в файл:

#include <stdio.h>

#include <stdlib.h>

struct BOOK // Структура - книга

{

char Author[64];

char Title[128];

char Firm[64];

int year, page;

};

 

int main(int argc, char* argv[])

{

int n; // Переменная, задающая число элементов массива

BOOK *pBook; // Указатель на массив структур

printf("n="); scanf_s("%d", &n); // Ввод числа книг

pBook = new BOOK[n]; // Выделяем память под массив структур (книг)

for (int i = 0; i<n; i++) // Цикл ввода данных о книгах с клавиатуры

{

printf("Book N=%d:\n", i + 1);

printf("Author: ");

fflush(stdin); gets_s(pBook[i].Author);

printf("Title: ");

fflush(stdin); gets_s(pBook[i].Title);

printf("Firm: ");

fflush(stdin); gets_s(pBook[i].Firm);

printf("year: "); scanf_s("%d", &pBook[i].year);

printf("page: "); scanf_s("%d", &pBook[i].page);

}

FILE *pF;

fopen_s(&pF, "MyBook.dat", "wb"); // Открываем файл для записи в двоичном режиме

fwrite(&n, sizeof(int), 1, pF); // Записываем в файл число элементов массива

fwrite(pBook, sizeof(BOOK), n, pF); // Записываем в файл массив книг

fclose(pF); // Закрываем файл

system("pause"); // Останавливаем программу, ждем нажатия любой клавиши

return 0;

}

 

Листинг программы с комментариями для чтения из файла:

#include <stdio.h>

#include <stdlib.h>

struct BOOK // Структура - книга

{

char Author[64];

char Title[128];

char Firm[64];

int year, page;

};

 

int main(int argc, char* argv[])

{

int n; // Переменная, задающая число элементов массива

BOOK *pBook; // Указатель на массив структур

FILE *pF;

fopen_s(&pF, "MyBook.dat", "rb");// Открываем файл для чтения в двоичном режиме

 

if (pF == 0) // Ошибка открытия файла, например, файл не существует

{

printf("Error, file not found");

return 1;

}

fread(&n, sizeof(int), 1, pF); // Читаем из файла число элементов массива

pBook = new BOOK[n]; // Выделяем память под массив структур (книг)

fread(pBook, sizeof(BOOK), n, pF); // Читаем из файла массив книг

fclose(pF); // Закрываем файл

for (int i = 0; i<n; i++) // Цикл вывода данных о книгах на экран

printf("%s. %s. %s, %d. - %d.\n", pBook[i].Author,

pBook[i].Title, pBook[i].Firm, pBook[i].year,

pBook[i].page);

system("pause"); // Останавливаем программу до нажатия любой клавиши

return 0;

}





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 537 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2323 - | 2092 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.