Управление операциями консольного ввода-вывода в C++
Каждая программа принимает некоторые данные в качестве входных данных и генерирует обработанные данные в качестве выходных данных, следуя знакомому циклу ввода-вывода. Важно знать, как предоставить исходные данные и представить результаты в желаемом виде. Использование cin и cout уже известен с операторами >> и << для операций ввода и вывода. В этой статье мы обсудим, как контролировать способ печати вывода.
C++ поддерживает широкий набор функций и операций ввода-вывода. Эти функции используют расширенные возможности C++, такие как классы, производные классы и виртуальные функции. Он также поддерживает весь набор функций ввода/вывода C и, следовательно, может использоваться в программах на C++, но их использование должно быть ограничено по двум причинам.
- Методы ввода-вывода в C++ поддерживают концепцию ООП.
- Методы ввода-вывода в языке C не могут обрабатывать определяемые пользователем типы данных, такие как класс и объект.
Он использует концепцию потоков и потоковых классов для реализации своих операций ввода-вывода с консольными и дисковыми файлами.
С++ поток
Система ввода-вывода в C++ предназначена для работы с широким спектром устройств, включая терминалы, диски и ленточные накопители. Хотя каждое устройство очень отличается, система ввода-вывода предоставляет программатору интерфейс, независимый от фактического устройства, к которому осуществляется доступ. Этот интерфейс известен как поток .
- Поток — это последовательность байтов.
- Исходный поток, предоставляющий данные программе, называется входным потоком.
- Целевой поток, который получает вывод из программы, называется выходным потоком.
- Данные во входном потоке могут поступать с клавиатуры или любого другого устройства ввода.
- Данные в потоке вывода могут поступать на экран или любое другое устройство вывода.
C++ содержит несколько предопределенных потоков, которые автоматически открываются, когда программа начинает выполняться. К ним относятся cin и cout . Известно, что cin представляет поток ввода, подключенный к стандартному устройству ввода (обычно клавиатуре), а cout представляет поток вывода, подключенный к стандартному устройству вывода (обычно экран).
Потоковые классы С++
Система ввода-вывода C++ содержит иерархию классов, которые используются для определения различных потоков для работы как с консольными, так и с дисковыми файлами. Эти классы называются потоковыми классами. Иерархия классов потоков, используемых для операций ввода и вывода, находится в блоке консоли. Эти классы объявлены в заголовочном файле iostream . Этот файл должен быть включен во все программы, взаимодействующие с консолью.
ios — это базовый класс для istream (входной поток) и ostream (выходной поток), которые, в свою очередь, являются базовыми классами для iostream (входной/выходной поток). Класс ios объявляется виртуальным базовым классом, так что только одна копия его членов наследуется iostream.
Класс ios обеспечивает базовую поддержку форматированных и неформатированных операций ввода-вывода. Класс istream предоставляет средства форматированного и неформатированного ввода, а класс ostream (путем наследования) предоставляет средства форматированного вывода.
Класс iostream предоставляет средства для обработки как входных, так и выходных потоков. Три класса добавляют задание к этим классам:
- istream_withassign
- ostream_withassign
- iostream_withassign
Табличное представление классов потоков для работы с консолью :
Имя класса | Содержание |
---|---|
ios (класс общего потока ввода/вывода) |
|
istream (входной поток) |
|
ostream (выходной поток) |
|
iostream (входной/выходной поток) |
|
Streambuf |
|