Бинарные файлы
Режимы открытия бинарного файла
Задача
Многомодульные проекты
Задание на лабораторную работу
1.03M
Category: programmingprogramming

Семинар14_Бинарные файлы (1)

1. Бинарные файлы

2.

Текстовые файлы хранят данные в виде набора символов.
Это значит, что если, например, мы записываем целое число 12345678 в
файл, то записывается 8 символов, а это 8 байт данных, несмотря на то, что
число помещается в целый тип (4 байта).
Кроме того, вывод и ввод данных является форматированным, то есть
каждый раз, когда мы считываем число из файла или записываем в файл
происходит трансформация числа в строку или обратно. Это затратные
операции, которых можно избежать.
Кроме того, текстовый файл – это файл последовательного доступа. То есть
чтобы прочитать 1000ый элемент, надо прочитать предыдущие 999.
Кроме текстового, можно хранить файл в бинарном виде (в виде
последовательности 0 и 1). При этом файл будет невозможно прочитать
обычным текстовым редактором.

3. Режимы открытия бинарного файла

Строка Способ доступа
“wb” открыть пустой файл для записи; если файл существует, то его
содержимое теряется;
“rb”
открыть файл для чтения (файл должен существовать);
“ab”
открыть файл для записи в конец (для добавления); файл
создается, если он не существует;
“wb+” открыть пустой файл для чтения и записи; если файл существует,
то его содержимое теряется;
“rb+” открыть файл для чтения и записи (файл должен существовать);
“ab+” открыть файл для чтения и дополнения, если файл не
существует, то он создаётся.

4.

• Функция, записывающая элемент в бинарный файл
fwrite(<элемент>, <РазмерЭлем>, <КолЭлементов>, <файл>)
• Функция, считывающая элемент из бинарного файла
fread(<элемент>, <РазмерЭлем>, <КолЭлементов>, <файл>)
• Функция, помещающая внутренний курсор файла на определенное место.
fseek(<файл>, <расстояние>, <точкаОтсчета>)
Расстояние – количество байт от точки отсчета.
Точка отсчета может принимать значения:
SEEK_SET – начало файла
SEEK_CUR – текущее положение курсора
SEEK_END – конец файла
• Функция возвращает количество байт от начала файла до курсора.
ftell(<файл>)

5. Задача

• Создать массив структур с полями: Фамилия студента, его группа
и средний балл
• Записать массив в бинарный файл
• Считать содержимое файла в массив и распечатать его
• Отсортировать файл по фамилии
• Считать содержимое измененного файла в массив и распечатать
его

6.

3
1
2
4

7.

8.

1
2
3

9.

10.

1. В бинарный файл поместить информацию о
сотрудниках организации в виде: фамилия, год
рождения, оклад, стаж работы.
2. В другой файл записать всех сотрудников, чей оклад
ниже среднего по предприятию, отсортировать
содержимое файла по алфавиту, вывести на экран
3. Найти в файле малооплачиваемых сотрудника, чей
стаж максимальный. Увеличить ему оклад в 2 раза.
4. Вывести в порядке увеличения возраста всех
юбиляров организации (чей возраст заканчивается на
0 и на 5)
5. Использовать подпрограммы и меню

11.

12.

13.

14.

15.

16.

17.

18.

19. Многомодульные проекты

Рано или поздно наступает момент, когда код программы становится
слишком большим. Его становится сложно читать, потому что все функции,
константы, макросы, глобальные переменные у нас находятся в одном
файле main.cpp
Логично разбить проект на части по функциональному назначению.
Такие части в языке C существуют, они именуются модулями.
Модуль в языке C – это, как правило, совокупность файла с исходным кодом
(расширение cpp или c), и заголовочного файла.
Заголовочный файл, или как его ещё называют header-файл – это файл, в
котором находятся подключения всяческих других заголовочных файлов,
библиотек, прототипы (заголовки) функций, некоторые глобальные
переменные, структуры, массивы, указатели, макросы и прочие объявления.
Заголовочные файлы имеют расширение h.

20.

Создание заголовочного файла
Контекстное меню
(правая кнопка
мыши)

21.

Создание файла исходного кода
Контекстное меню
(правая кнопка
мыши)

22.

Изменения в файлах проекта

23.


Заголовочный файл:
Библиотеки
Директивы препроцессору
Глобальные константы
Пользовательские типы
Объявление функций

24.

Файл ресурсов:
• Подключить заголовочный
файл
• Реализация объявленных в
заголовочном файле
функций

25.

Основной файл:
• Подключить
заголовочный файл
• Главная функция –
точка входа программы

26. Задание на лабораторную работу

1. В бинарный файл поместить информацию об автомобилях
в виде: Наименование, Страна, Стоимость.
2. Вывести автомобили в алфавитном порядке, чья
стоимость ниже средней.
3. Вывести все автомобили указанной страны, в порядке
удорожания.
4. Использовать подпрограммы, модули и меню. Все
обработки выполнять внутри основного и
вспомогательных файлов
English     Русский Rules