Ввод и вывод в языке C++ довольно разнообразен и включает в себя множество вариаций. С их помощью можно выводить данные, например, в файл или порт, или же на экран. Все это достигается некоторым набором функций и библиотек, которые по большей части имеют схожий функционал. В их задачах стоит сформировать поток данных, которые будут бит за битом передаваться внутрь программы или из программы.
Одна из основных библиотек это <iostream>. Она включает в себя основные функции ввода и вывода из потоков данных - cin, cout, cerr и clog. Эти функции используются обычно для работы с экраном приложения.
Следом за ней идет <fstream> - большей частью интерфейсная библиотека для работы с файлами и их данными. Эта бибдиотека является основой более узкоспециализированных библиотек <istream> и <ostream>, так же работающих с файлами.
Если говорить о работе с потоками и, с файлами в частности, то необходимо отметить семейства функций printf(), scanf(), позволяющие работать со стандартными потоками языка C++, а так же их модификации fprintf() и fscanf(), позволяющие работать с любым потоком, указав его формат.
Если говорить в целом, то получать и отправлять данные с помощью потоков можно практически для любого объекта, необходимо лишь указать параметры и формат потока.