КИТА unofficial

Компьютерный => Программирование => Тема начата: Магнетон Бора от Сентябрь 27, 2008, 09:36:31



Название: Потоки и С++
Отправлено: Магнетон Бора от Сентябрь 27, 2008, 09:36:31
Какой-то умный человек реализовал в языке С++ возможность потокового ввода\вывода информации на экран и в файл. Но используя компилятор Borland C++ 3.1, я задался таким вопросом: как вводить и выводить информацию, используя потоки, когда работа осуществляется в графическом режиме, ведь если мне нужно вывести текст в нужной части экрана я не могу пользоваться функцией gotoxy, а информацию выводить надо. Один из советов был написать свой класс ввода\вывода, через потоки, но тут возникли некоторые сложности. Не мог ли кто-нибудь подробнее рассказать про работу ios, а так же streambuf. Или на худой конец поделиться опытом в реализации сей задачи. Заранее благодарен.  :)


Название: Re: Потоки и С++
Отправлено: EvilMax от Сентябрь 27, 2008, 11:05:57
Проблема заключается в том, что если ты хочешь выводить информацию на экран в графическом режиме и при этом иметь правильную позицию, правильный цвет, правильный шрифт, про стандартные потоки можно забыть. Поэтому если уж очень хочется именно потоковый вывод в графическом режиме, надо делать свой класс.

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

Еще неплохая помощь - инклуды того же iostream. Можно подсмотреть, как реализовали умные дядьки из Borland. Так сказать, bestpractices.