Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Алексей_x86
 Аватар для Алексей_x86
1 / 1 / 0
Регистрация: 17.01.2013
Сообщений: 21
#1

Как очистить консоль , без мигания - C++

18.01.2013, 00:50. Просмотров 1876. Ответов 4
Метки нет (Все метки)

Доброго времени суток.
Пишу консольную игру на С++ , и нужно постоянно перерисовывать консоль.
Но при очистке/записи в консоль происходит мигание/мерцание консоли.
Можно ли как-то от этого избавиться?
Я пробовал такие варианты :
1)system("cls");
2)clssrn();
3)Просто не очищать консоль , а рисовать такой же прямоугольник символов, как размер консоли (то есть просто прокрутка консоли)
3)Пробовал ставить курсор в начало консоли , и рисовать поверх прошлого кадра.
НО все равно есть ощутимое мигание , но я видел консольные игры на С++ без мигания.
Так как убрать мигание?
(вроде бы как-то можно сделать через буфер консоли или на WinApi но в учебниках об этот не пишут)
Спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2013, 00:50     Как очистить консоль , без мигания
Посмотрите здесь:

C++ Как очистить консоль после итерации цикла?
C++ Консоль без русского !
Как очистить экран? C++
Как очистить экран в программе? C++
C++ Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка C++
C++ Как очистить cin?
Как очистить консоль от HPEN Pen? C++
Как Очистить середину файла? C++
C++ Как очистить ostringstream?
C++ Как очистить поток ввода?
Как очистить буфер клавиатуры? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 2
Завершенные тесты: 1
18.01.2013, 00:52     Как очистить консоль , без мигания #2
Цитата Сообщение от Алексей_x86 Посмотреть сообщение
вроде бы как-то можно сделать через буфер консоли или на WinApi но в учебниках об этот не пишут
Функции консоли
Алексей_x86
 Аватар для Алексей_x86
1 / 1 / 0
Регистрация: 17.01.2013
Сообщений: 21
18.01.2013, 00:56  [ТС]     Как очистить консоль , без мигания #3
Спасибо.
Maskit
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 1
22.05.2016, 01:26     Как очистить консоль , без мигания #4
Нашел информацию, может кому пригодится.
Вставь функцию
Код
C++
1
2
3
4
5
6
7
void setcur(int x, int y)//установка курсора на позицию  x y 
{ 
COORD coord; 
coord.X = x; 
coord.Y = y; 
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); 
};
И вместо system("cls") пиши setcur(0,0). Будет получше.
nonedark2008
813 / 571 / 110
Регистрация: 28.07.2012
Сообщений: 1,518
22.05.2016, 01:42     Как очистить консоль , без мигания #5
Цитата Сообщение от Maskit Посмотреть сообщение
И вместо system("cls") пиши setcur(0,0). Будет получше.
Плохой вариант.
Стандартным решением будет просто использовать двойную буферизацию для консоли.
По ссылке выше есть все необходимые функции.
Yandex
Объявления
22.05.2016, 01:42     Как очистить консоль , без мигания
Ответ Создать тему
Опции темы

Текущее время: 03:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru