В большинстве своем файлы представляют собой именованные области внешней (дисковой) памяти, с которыми программы могут обмениваться информацией. Необходимость в таких обменах, во-первых, возникает, когда объем оперативной памяти недостаточен для хранения нужной информации. Во-вторых, программа может воспользоваться данными, полученными ранее другой программой и предусмотрительно записанными на диск. Наконец, в программах, требующих во время своей работы ввод исходных данных достаточно большого объема, целесообразно считывать эти данные из файла – данные в файле можно подготовить заблаговременно и тщательно выверить.
Файл – это информация, размещенная на каком-либо носителе (диске) или в буфере ввода/вывода устройства (клавиатура). Файлы предназначены только для хранения информации, а обработка этой информации осуществляется программами.
Для обмена данными файл должен быть открыт, по завершении этого процесса – закрыт.
Поток – это логический канал, предназначенный для выполнения операций ввода/вывода. Каждому файлу при его открытии ставится в соответствие поток.
В языке Cи существуют стандартные потоки:
stdin – стандартный консольный ввод (клавиатура по умолчанию);
stdout – стандартный консольный вывод (монитор по умолчанию);
Стандартные потоки открываются при каждом запуске программы.
Работа с файлами
Для работы с файлами в программах на C++ используется заголовочный файл stdio.h, в котором объявлен специальный тип данных – структура FILE, предназначенная для хранения атрибутов (параметров) файлов (указатель текущей позиции файла, признак конца файла, флаги индикации ошибок, сведения о буферизации и др.).
Поля структуры типа FILE доступны с помощью специальных
C-функций. Для организации работы с файлом используется определенная последовательность действий.
Объявление переменной-указателя на структуру типа FILE, в которой будут храниться атрибуты файла
FILE *fl;
где *fl – указатель на файл.