Проблема заключается в том, что если ты хочешь выводить информацию на экран в графическом режиме и при этом иметь правильную позицию, правильный цвет, правильный шрифт, про стандартные потоки можно забыть. Поэтому если уж очень хочется именно потоковый вывод в графическом режиме, надо делать свой класс.
Собственно, по классу. Нужно инкапсулировать информацию о текущей позиции, цвете, шрифте. По вызовам: вызовы функций позиционирования в графическом режиме, смены цвета, шрифта. Ну и переопределить операцию << . После чего сделать глобальный экземпляр потока - gout и пользоваться
(назвал по аналогии с cout,
graphical
output ).
Еще неплохая помощь - инклуды того же iostream. Можно подсмотреть, как реализовали умные дядьки из Borland. Так сказать, bestpractices.