Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
100-105.docx
Скачиваний:
4
Добавлен:
11.09.2019
Размер:
33.41 Кб
Скачать

Потоковый ввод-вывод.

Имеется три основных типа функций ввода/вывода: потоковые, работающие с консолью и портами, низкоуровневые.

В потоковых функциях ввода/вывода файлы или объекты данных рассматриваются как поток отдельных символов,

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

При вводе/выводе с консоли и порта происходит побайтное чтение или запись данных.

Связь с файлами.

1 Способ организации связи программы с файлом заключается в использовании операций переключения < и >.

books>bklist

2 способ заключается в использовании функции fopen(), которая открывает файл, затем применяются специальные функции ввода-вывода для чтения файла или записи в этот файл и далее используется функция fclose() для закрытия файла.

Понятие файла.

Для нас файл является частью памяти, обычно на диске, со своим именем. Язык Си «рассматривает» файл как структуру, краткое наименование шаблона файла — FILE

  1. Потоковые функции. Открытие потоков. Файлы. Текстовые файлы с буферизацией. Переназначение ввода и вывода. Изменение буфера потока. Закрытие потоков.

Потоковые функции.

Для того чтобы использовать потоковые функции, в программу должен быть включен файл stdio.h. В этом файле содержатся описания констант, типов и структур, используемых в потоковых функциях, а также — прототипы и макроопределения этих функций.

Открытие потоков.

можно с помощью одной из трех функций открыть этот поток: fopen(), fdopen() или freopen().Файл потока может открываться для считывания, записи или для считывания/записи в текстовом или двоичном режиме.

Все три функции возвращают указатель на файл, который используется для обращения к потоку.

Файлы.

Функцией fopen() управляют три основных параметра. Первый — имя файла, который следует открыть.

Второй параметр описывает, как должен использоваться файл. Вот три основных применения файла:

"r" : файл нужно считать

"w” : файл нужно записать

"а" : файл нужно дополнить

Для w и a будет открываться существующий файл, но если такого файла нет, он будет создан.

Если мы используем "w" для существующего файла, то старая версия его стирается, и ваша программа начинает на "чистом месте".

Третий параметр является указателем на файл; это значение возвращается функцией:

FILE *in;

in = fopen("test", "r");

Если fopen() не способна открыть требуемый файл, она возвращает значение 'NULL'

if ( (in = fopen("test", "r") )!= NULL)

Сам С автоматически закрывает файлы при окончании программы. Иногда, однако, требуется самим управлять закрытием файлов, тогда используется fclose().

Текстовые файлы с буферизацией.

Функции fopen() и fclose() работают с текстовыми файлами с «буферизацией». Буферизация - вводимые и выводимые данные запоминаются во временной области памяти, называемой буфером. Если буфер заполнился, содержимое его передается в блок, и процесс буферизации начинается снова.

Текстовым считается файл, в котором информация запоминается в виде символов в коде ASCII (или аналогичном).