logo
шпоры по ООП

34.Создание и организация взаимодействие потоков ввода-вывода.

Цель создания С++ была в том, чтобы пользователь мог определить новые типы данных, работа с которыми была бы столь же удобна и эффективна как и со встроенными типами. Таким образом, кажется разумным потребовать, чтобы средства ввода-вывода для С++ программировались с использованием возможностей С++, доступных каждому. Представленные здесь потоковые средства ввода-вывода появились в результате попытки удовлетворить этим требованиям.

Основная задача потоковых средств ввода-вывода - это процесс преобразования объектов определенного типа в последовательность символов и наоборот. Существуют и другие схемы ввода-вывода, но указанная является основной, и если считать символ просто набором битов, игнорируя его естественную связь с алфавитом, то многие схемы двоичного ввода-вывода можно свести к ней. Поэтому программистская суть задачи сводится к описанию связи между объектом определенного типа и бестиповой (что существенно) строкой.

Последующие разделы описывают основные части потоковой библиотеки С++:

10.2 Вывод: То, что для прикладной программы представляется выводом, на самом деле является преобразованием такихобъектовкак int,

char *, complex или Employee_record в последовательность символов. Описываются средства для записи объектов встроенных и пользовательских типов данных.

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

10.4 Форматирование: Часто существуют определенные требования к виду вывода, например, int должно печататься десятичными цифрами, указатели в шестнадцатеричной записи, а вещественные числа должны бытьс явно заданной точностью фиксированного размера. Обсуждаются функции форматирования и определенные программистские приемы их создания, в частности, манипуляторы.

10.5 Файлы и потоки:Каждая программа на С++можетиспользоватьпо умолчанию три потока - стандартный вывод (cout), стандартный ввод

(cin) и стандартный поток ошибок (cerr). Чтобы работать с какими-либо устройствами или файлами надо создать потоки и привязать их к этим устройствам или файлам. Описывается механизм открытия и закрытия файлов и связывания файлов с потоками.

10.6 Ввод-вывод для С: обсуждается функция printf из файла <stdio.h> для С а также связь между библиотекой для С и <iostream.h> для С++.

Укажем, что существует много независимых реализаций потоковой библиотеки ввода-вывода и набор средств, описанных здесь, будет только подмножеством средств, имеющихся в вашей библиотеке.