Классы ввода-вывода iostream рассматривают информацию, как побитовый поток данных. Если данные выводятся на экран или заносятся в файл, то источник их как правила находится в программе. Если поток направлен в противоположную сторону, то данные могут поступать либо с клавиатуры или из файла, В этом случае они заносятся в переменные.
Операция записи на диск достаточно временноёмка, поэтому используют буфер обмена.
В С++ используется ОО подход к реализации обмена данными с буферными потоками.
§ Класс streambuf управляет буфером, его методы позволяют наполнить, опорожнить и очистить буфер.
§ Класс ios является базовым для классов ввода-вывода.
§ Классы istream и ostream являются произвольными от класса ios и отвечают соответственно за потоковый ввод и вывод данных.
§ Класс iosteam является произвольным от istream и ostream и обеспечивает методы ввода-вывода для печати на экран.
§ Классы fstream используются для ввода-вывода из файла.
В файле iostream.h определены классы iostream и ostream, именно то, что эти операторы ввода-вывода работают с классами, позволяет перегружать их для работы с классами пользователя. Оператор cin является глобальным объектом и перегружается таким образом, что можно вводить различные типы данных.
В частности при помощи этого объекта модно ввести тип *char, то есть строку символов. Можно использовать дополнительные методы этого класса, что бы более полно контролировать ввод-вывод. Пример : ввод одного символа можно реализовать при помощи метода cin.get()>>
#include <iostream.h>
#include <math.h>