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

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

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

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

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

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

Как очистить консоль от HPEN Pen? - C++
Здравствуйте:) Проблема состоит в том, что я не знаю как очистить консоль от графика, который нарисован с помощью. system("cls") - не...

Как очистить консоль после итерации цикла? - C++
Как очистить консоль в С++ после итерации цикла или перед функцией,чтобы допустим мы ввели массив,потом консоль очистилась и,к...

Консоль без русского ! - C++
Начал учить C++ но сталкнулся с проблемой когда пишу консольную программу русский язык заменяет на непонятно какие буквы подскажите в чём...

Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка - C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка. ...

Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка - C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка. ...

Как очистить cin? - C++
собственно защита от дурака, от пользователя требуется цифра, а он вводит букву, и все следующие cin не работают, cin.clear() не подходит,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13234 / 7506 / 846
Регистрация: 27.09.2012
Сообщений: 18,443
Записей в блоге: 3
Завершенные тесты: 1
18.01.2013, 00:52 #2
Цитата Сообщение от Алексей_x86 Посмотреть сообщение
вроде бы как-то можно сделать через буфер консоли или на WinApi но в учебниках об этот не пишут
Функции консоли
1
Алексей_x86
1 / 1 / 0
Регистрация: 17.01.2013
Сообщений: 21
18.01.2013, 00:56  [ТС] #3
Спасибо.
0
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). Будет получше.
0
nonedark2008
909 / 648 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
22.05.2016, 01:42 #5
Цитата Сообщение от Maskit Посмотреть сообщение
И вместо system("cls") пиши setcur(0,0). Будет получше.
Плохой вариант.
Стандартным решением будет просто использовать двойную буферизацию для консоли.
По ссылке выше есть все необходимые функции.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2016, 01:42
Привет! Вот еще темы с ответами:

Как очистить ostringstream? - C++
Есть код: #include <sstream> #include <bitset> #include <fstream> #include <iostream> #include <cstdlib> int main() { ...

Как очистить экран? - C++
Как очистить экран?

Как очистить экран в программе? - C++
Всем привет, у меня возникла такая проблема, мне нужно что б когда пользователь например вписал команду и поменялась...

Как очистить буфер клавиатуры? - C++
Есть меню в котором я двигаю стрелочку кнопками вверх и вниз и нажимаю ентер. while (true) { if (ti > 0) ti--; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.05.2016, 01:42
Ответ Создать тему
Опции темы

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