
Лабораторная работа №6
Система ввода-вывода в языке Си. Работа с консольными функциями.
Работа с текстовыми файлами.
Цель работы:
Познакомиться с новыми понятиями: поток ввода-вывода, файл, устройство ввода-вывода.
Изучить методы работы c потоками и файлами
Получить навыки работы с консолью
Получить навыки работы с текстовыми файлами
Теоретические сведения
При подготовке к лабораторной работе использовать материалы лекций, расположенные в папке «Примеры из лекций»
Организация ввода и вывода. Файловая система
Операции ввода/вывода в языке Си осуществляются через потоки. Поток - это логическое устройство, выдающее и принимающее информацию.
С потоком связано понятие внутреннего указателя, который определяет позицию, с которой начинается следующая операция чтения или записи. При каждой операции чтения или записи происходит автоматическое перемещение указателя.
В языке Си (С++) формат стандартных файлов ввода/вывода описан в заголовочном файле stdio.h. Имена стандартных файлов ввода/вывода для языка Си (С++) представлены в табл. 7.1. В момент начала выполнения программы на языке Си (С++) автоматически открываются три потока:
stdin, stdout, stderr.
Потоки, определяемые в языке Си и С++
Имя стандартного файла |
Описание |
stdaux |
Последовательный ввод/вывод |
stderr |
Выходной поток ошибок |
stdin |
Стандартный ввод |
stdout |
Стандартный вывод |
stdprn |
Вывод на принтер |
С++ поддерживает всю систему ввода/вывода Си и добавляет к ней дополнительные возможности, связанные в основном с вводом/выводом объектов. Описание средств для создания потоков в С++ представлено в заголовочном файле iostream.h. Когда начинает работать программа на С++, открываются потоки, приведенные в табл.
Потоки, определяемые в языке С++
Имя стандартного файла |
Описание |
cin |
Стандартный ввод - клавиатура |
cout |
Стандартный вывод - экран |
cerr |
Стандартная ошибка - экран |
clog |
Буферизованная версия cerr - экран |
Файловая система языков Си и С++ состоит как бы из двух уровней:
логических файлов ;
физических файлов, с которыми логические файлы всегда связаны.
Логический файл описывается как указатель на открываемый поток FILE * и служит средством взаимодействия с физическим файлом.
Имя физического файла появляется в программе всего один раз, в тот момент, когда происходит открытие файла, осуществляемое функцией fopen() и одновременно его связывание с логическим файлом.
Основными действиями, производимыми над файлами, являются :
открытие файла ,
обработка файла
закрытие файла.
Обработка файлов может заключаться в следующем :
считывание блока данных из потока в оперативную память,
запись блока данных из оперативной памяти в поток,
считывание определенной записи данных из потока,
занесение определенной записи данных в поток.
При этом необходимо помнить, что понятие файла в памяти ЭВМ не определено, и приобретает смысл только после его связи с внешним физическим файлом.