Резюме
Язык С++ использует библиотечные классы для обработки потоков ввода и вывода.
• Класс iostream отрабатывает ввод-вывод на консоль.
• Класс fstream отрабатывает ввод-вывод в именованным файл.
• Класс stringstream отрабатывает ввод-вывод в строки в оперативной памяти.
Классы fstream и stringstream связаны происхождением от класса iostream. Классы ввода происходят от класса istream, а классы вывода — от класса ostream. Таким образом, операции, которые могут быть выполнены с объектом класса istream, могут быть также выполнены с объектом класса ifstream или istringstream. Аналогично для классов вывода, происходящих от класса ostream.
Каждый объект ввода-вывода обладает набором флагов состояния, указывающих, возможен ли ввод-вывод через этот объект. Если произошла ошибка (например, встретился конец файла в потоке ввода), то состояние объекта окажется таково, что никакой дальнейший ввод невозможен, пока ошибка не будет исправлена. Библиотека предоставляет набор функций для установки и проверки этих состояний.