Скачиваний:
40
Добавлен:
05.07.2021
Размер:
676.99 Кб
Скачать

Министерство образования Республики Беларусь

Министерство образования Республики Беларусь

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра эконмической информатики

Объектно-ориентированное программирование

Лабораторная работа №3

“ПОТОКИ ВВОДА/ВЫВОДА В ЯЗЫКЕ С++”

Выполнила: Студентка группы

972303

Рушева Маргарита

Владиславовна

Проверила: Григорьева Юлия

Юрьевна

Минск, 2021

1 Цель лабораторной работы

Изучить понятие потока; организацию ввода данных из потока и вывода в поток; контроль состояния потока и исправление ошибок; неформатированный ввод-вывод; манипуляторы потоков (стандартные и определяемые пользователем).

2 Теория по лабораторной работе

ПОТОКОВЫЕ КЛАССЫ

В языке C++ поток ввода-вывода представляет собой объект класса потокового ввода-вывода. Разные потоки предназначены для обработки разных видов данных. Например, класс ifstream представляет собой поток ввода данных, который может быть связан с файлом

Можно перегружать стандартные операторы вставки (<>) данных для работы с объектами создаваемых классов.

ИЕРАРХИЯ ПОТОКОВЫХ КЛАССОВ

При работе с потоковой библиотекой ввода-вывода C++ достаточно активно используются следующие классы: ios – базовый потоковый класс; istream – класс входных потоков; ostream – класс выходных потоков; iostream – класс двунаправленных потоков ввода-вывода; ifstream – класс входных файловых потоков; ofstream – класс выходных файловых потоков; fstream – класс двунаправленных файловых потоков (ввода-вывода); Операция извлечения из потока >> является методом класса istream, операция вставки в поток << — методом класса ostream. Оба этих класса являются наследниками класса ios.

МАНИПУЛЯТОРЫ. ФЛАГИ ФОРМАТИРОВАНИЯ

Для установки флага вывода используется следующая конструкция языка C++: cout.setf(ios::flag) Для снятия флага конструкция: cout.unsetf(ios::flag) Здесь параметр flag обозначает имя конкретного флага. Если необходимо установить несколько флагов, то можно воспользоваться операторм «или» (|). В этом случае оператор языка C++ будет такой: cout.setf(ios::flag1 | ios::flag2 | ios::flag3) В данном случае flag1, flag2, flag3 — имена устанавливаемых флагов.

ОБЪЕКТЫ ГЛОБАЛЬНЫХ ПОТОКОВ

Еще двумя предопределенными объектами являются cerr и clog. Объект cerr определяет глобальный поток вывода ошибок. Объект cerr управляет вставками без буфера в стандартный поток вывода ошибок в виде потока байтов. Объект clog определяет глобальный поток вывода ошибок с буферизацией. Объект clog управляет буферизованными вставками в стандартный поток вывода ошибок в виде потока байтов. Объект cerr часто используется для сообщений об ошибках и программной диагностики. Поток данных, отправленный в него, немедленно выводится на экран, минуя буферизацию. Этим cerr отличается от cout. К тому же этот поток не может быть перенаправлен. Объект, clog, похож на cerr в том, что также не может быть перенаправлен. Но его вывод проходит буферизацию.

ОШИБКИ ПОТОКОВ

Соседние файлы в папке лабы Салапура 2ая часть (4 семестр)