Программирование на языке С++. Викентьева О.Л - 44 стр.

UptoLike

44
подходе понятие файла распространяется и на различные
устройства.
В Си отсутствуют средства ввода-вывода. Все операции
ввода-вывода реализуются с помощью функций, которые нахо-
дятся в библиотеке Си. Библиотека Си поддерживает три
уровня ввода-вывода:
потоковый ввод-вывод;
ввод-вывод нижнего уровня;
ввод-вывод для консоли и портов (зависит от ОС).
1.2. Потоковый ввод-вывод
На уровне потокового ввода-вывода обмен данными про-
изводится побайтно, т. е. за одно обращение к устройству
(файлу) производится считывание или запись фиксированной
порции данных (512 ил 1024 байта). При вводе с диска или
при считывании из файла данные помещаются в буфер ОС, за-
тем побайтно или порциями передаются в программе пользо-
вателя. При вывод в файл данные накапливаются в буфере, а
при заполнении буфера записываются в виде единого блока
на диск. Буферы ОС реализуются в виде участков основной
памяти . Функции библиотеки Си, поддерживающие обмен, с
данными на уровне потока позволяют обрабатывать данные
различных размеров и форматов.
Поток - это файл вместе с предоставленными средства-
ми буферизации. При работе с потоком можно:
1) Открывать и закрывать потоки ( связывать указатели на
поток с конкретными файлами);
2) вводит и выводить строку, символ, форматированные дан-
ные, порцию данных произвольной длины;
3) анализировать ошибки ввода-вывода и достижения конца
файла;
4) управлять буферизацией потока и размером буфера;
5) получать и устанавливать указатель текущей позиции в
файле;
Функции библиотеки ввода-вывода находятся в заголовочном
файле <stdio.h>.
1.3. Открытие и закрытие потока
Прежде чем начать работать с потоком, его надо ини-
циировать, т. е. открыть. При этом поток связывается со
структурой предопределенного типа FILE, определение кото-
рой находится в библиотечном файле <stdio.h>. В
структуре
находится указатель на буфер, указатель на текущую пози-
цию файла и т. п. При открытии потока, возвращается ука-
затель на поток, т. е. на объект типа FILE.
#include <stdio.h>;
. . . . . . . .
FILE *fp;
. . . . . . . . . . ..
fp= fopen( ”t.txt”, ”r
);
где fopen(<имя_файла>,<режим_открытия>) - функция для
инициации файла.
                                                        44


подходе понятие файла распространяется и на различные
устройства.
      В Си отсутствуют средства ввода-вывода. Все операции
ввода-вывода реализуются с помощью функций, которые нахо-
дятся в библиотеке Си. Библиотека Си поддерживает три
уровня ввода-вывода:
• потоковый ввод-вывод;
• ввод-вывод нижнего уровня;
• ввод-вывод для консоли и портов (зависит от ОС).
                 1.2. Потоковый ввод-вывод
      На уровне потокового ввода-вывода обмен данными про-
изводится побайтно, т. е. за одно обращение к устройству
(файлу) производится считывание или запись фиксированной
порции данных (512 ил 1024 байта). При вводе с диска или
при считывании из файла данные помещаются в буфер ОС, за-
тем побайтно или порциями передаются в программе пользо-
вателя. При вывод в файл данные накапливаются в буфере, а
при заполнении буфера записываются в виде единого блока
на диск. Буферы ОС реализуются в виде участков основной
памяти . Функции библиотеки Си, поддерживающие обмен, с
данными на уровне потока позволяют обрабатывать данные
различных размеров и форматов.
      Поток - это файл вместе с предоставленными средства-
ми буферизации. При работе с потоком можно:
1) Открывать и закрывать потоки ( связывать указатели на
   поток с конкретными файлами);
2) вводит и выводить строку, символ, форматированные дан-
   ные, порцию данных произвольной длины;
3) анализировать ошибки ввода-вывода и достижения конца
   файла;
4) управлять буферизацией потока и размером буфера;
5) получать и устанавливать указатель текущей позиции в
   файле;
Функции библиотеки ввода-вывода находятся в заголовочном
файле .
              1.3. Открытие и закрытие потока
      Прежде чем начать работать с потоком, его надо ини-
циировать, т. е. открыть. При этом поток связывается со
структурой предопределенного типа FILE, определение кото-
рой находится в библиотечном файле . В структуре
находится указатель на буфер, указатель на текущую пози-
цию файла и т. п. При открытии потока, возвращается ука-
затель на поток, т. е. на объект типа FILE.
#include ;
. . . . . . . .
FILE *fp;
. . . . . . . . . . ..
fp= fopen( ”t.txt”, ”r”);
где fopen(<имя_файла>,<режим_открытия>) - функция для
инициации файла.