Подробный разбор механизма вывода на экран. Как можно сменить IO поток, т.е. перенаправить вывод в требуемый поток, потом получить оттуда данные, и все вернуть на место Рассмотрим матчасть, потом улучшим код, чтобы избежать случайного переопределения потока, без возврата к предыдущему потоку Потом обернем все в функцию, для более удобного использования И так же рассмотрим вариант переопределения потока в файл