Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си_3.doc
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
192 Кб
Скачать

Библиотеки и ввод-вывод данных

Для каждой библиотеки Си созданы интерфейсные файлы с расширением .h, в которых содержатся прототипы (объявления) всех библиотечных функций, объявления относящихся к ней структур данных и констант.

Пример Интерфейсные файлы библиотек Си

alloc.h – динамическое распределение памяти;

conio.h – функции ввода-вывода с терминала и порта;

math.h – математические функции;

stdio.h – ввод-вывод данных;

string.h – работа со строками.

Ввод-вывод данных. Основные понятия

Функции ввода-вывода сгруппированы в трёх библиотеках, интерфейсы которых находятся в файлах:

  • stdio.h – для функций стандартного ввода-вывода верхнего уровня;

  • io.h – для функций, выполняющих операции над файлами;

  • conio.h – для функций консольного ввода-вывода c терминала и порта.

Функции ввода-вывода можно разделить на две группы:

  • ввод-вывод верхнего уровня: потоковый и записями;

  • ввод-вывод нижнего уровня (системный ввод-вывод).

Функции верхнего уровня позволяют буферизированный форматный и бесформатный ввод-вывод данных.

Они одинаково реализованы в различных операционных системах и на разных ЭВМ и позволяют создавать переносимые программы.

Прототипы всех функций ввода-вывода верхнего уровня содержатся в файле stdio.h и совместимы с аналогичными функциями системы UNIX. Функции ввода-вывода для консоли и порта позволяют читать и писать на консоль (терминал) или в порт ввода-вывода, например, в порт принтера.

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

Функции ввода-вывода верхнего уровня реализуют ввод-вывод потоком и записями.

Поток (stream) определяет источник или приёмник данных. Его можно связать с файлом на магнитном диске или с внешним устройством. Поток может быть текстовым или бинарным.

Текстовый поток - последовательность строк; каждая строка имеет 0 или более символов, заканчивается конца строки ‘\n’ и перехода к следующей. Бинарный поток - последовательность байтов без учёта разделения на строки.

Для работы с файлом его надо открыть, обработать и закрыть. При открытии файла программы с ним связывается определённый физический поток (физический файл). Файл должен иметь указатель на структуру типа FILE (тип, определённый в stdio.h). Когда файл открывается с помощью функции fopen, структуре типа FILE выделяется оперативная память (ОП), адрес которой получает указатель на структуру. Поток связывается со структурой типа FILE. Структура содержит информацию о файле или устройстве, с которым связан файл программы. Указатель на структуру типа FILE используется для операций с файлами с помощью библиотечных функций ввода-вывода.

Структура типа FILE используется функциями ввода-вывода для хранения информации, связанной с устройством или файлом. Объявляется она в файле stdio.h.

ОС автоматически открывает перед началом работы любой прикладной программы следующие стандартные файлы и устройства:

stdin – для стандартного ввода; назначается клавиатура;

stdout – для стандартного вывода; назначается экран;

stdprn – для стандартного устройства печати;

stderr – для вывода сообщений об ошибках (обычно экран);

stdaux – стандартный порт.

Файлы stdin и stdout можно переназначить при запуске exe-программы или в программе с помощью функции freopen.

Можно использовать при работе с файлами константы, определённые в stdio.h: EOF – признак конца файла; NULL – значение указателя, которое не содержит адрес объекта.