Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > отчистка за собой экрана(сrossplatform)


Автор: En_t_end 14.4.2006, 14:54
Нужен наиболее простой в смысле количества команд процессору способ отчистки за собой области экрана.
Вариант 1:
Юзать clrscr() - smile точно не подходит.
Вариант 2:
Юзать способ из MSDN, но тогда нарушается условие crossplatform.
Вариант 3:
С помошью ostream::tellp и ostream::seekp сначало определять область, изменяемую программой, сохранив её, сделать то что нужно, далее в сохраненную область(byte begin->byte end) записать ' ', далее вернуться на byte begin и совершить шаг отрисовки следующего элемента.

Меня интересует, неужели вариант 3 - единственный ?, если да, то как не записывая ' ' можно отчистить байт ? Может есть какой-то быстрый способ сброса битов в состояние неопределенности, но так чтобы на экране не было конкретных символов ?

Автор: chaos 14.4.2006, 15:00
я вот не в курсе, ESC-последовательности работают под виндой?
под *nix точно все работает

вот уже не раз говорил
http://forum.vingrad.ru/index.php?showtopic=58940&view=findpost&p=471466
http://forum.vingrad.ru/index.php?showtopic=80360&view=findpost&p=622353

Автор: Janus 14.4.2006, 17:20
А через system()? Команды разные, но кто запрещает поставить их 2 подряд или определить тип ОС в программе и вызвать нужную.

Автор: _hunter 14.4.2006, 17:27
это:
Цитата(En_t_end @ 14.4.2006, 14:54 Найти цитируемый пост)
наиболее простой в смысле количества команд процессору

требование...

проще, в таком случае, clrscr() использовать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)