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

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

Войти
Регистрация
Восстановить пароль
 
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

Консольная двойная буферирзация - C++

14.11.2013, 22:35. Просмотров 312. Ответов 5
Метки нет (Все метки)

Подскажите как реализовать двойную реализацию в консоли.

Допустим у меня бесконечный цикл

C++
1
2
while(true)
     cout<<"hello";
Если я запущу это приложение, то увижу бесконечное мерцание слова hello. Если бы была двойная буыеризация я бы просто видел слово hello. И его написание скрывалось от моих глаз.


Как это все сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 22:35     Консольная двойная буферирзация
Посмотрите здесь:

Консольная программа... - C++
Здравствуйте! Прошу помочь с написанием консольной программы, которая вводит с консоли значения элементов двумерного массива целых чисел...

Консольная змейка - C++
Написал консольную змейку, но почему-то не работает управление :) Ну, как не работает, цвет на пробел то меняется, но W, A, S, D чтоб...

Консольная графика С++ - C++
Сейчас пишу для экзамена покер на одного игрока. И столкнулся проблемой, при рисовании карт, они у меня рисуются одна под одной и по этому...

консольная псевдографика - C++
как узнать текущее положение консольного курсора, не мыши, а именно того, который символы набирает )

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

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

Консольная графика - C++
Наверное будет звучать грубо, но как мне нарисовать в консоли квадратик, выбрав его цвет и размер?

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

Консольная команда и С++ - C++
Добрый вечер. Что использовать в С++ чтобы запустить Java приложение таким кодом( какую функцию ): Код: #!/bin/bash cd...

Консольная графика - C++
Здравствуйте, я написал этот код в Борланд С++ (пример нашел в книге): #include &lt;graphics.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
14.11.2013, 22:39     Консольная двойная буферирзация #2
посмотрите в сторону библиотеки ncurses
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.11.2013, 22:49  [ТС]     Консольная двойная буферирзация #3
Цитата Сообщение от Cra3y Посмотреть сообщение
посмотрите в сторону библиотеки ncurses
А смогу ли я ее использовать исключительно для двойной буферизации, а остальная работа в обычном режиме?
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
14.11.2013, 23:04     Консольная двойная буферирзация #4
Egor138,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <windows.h>
 
HANDLE hstdout;
typedef std::pair< int, int > place;
 
void write(const place &pl, const std::string &symbol) {
    DWORD written;
    COORD p;
    p.X = pl.first;
    p.Y = pl.second;
    SetConsoleCursorPosition(hstdout, p);
    WriteConsole(hstdout, symbol.c_str(), symbol.size(), &written, NULL);
}
 
int main() {
    hstdout = GetStdHandle(STD_OUTPUT_HANDLE); 
    
    while(true)
        write(place(30, 40), "hello");
}
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
14.11.2013, 23:04     Консольная двойная буферирзация #5
ncurses работает независимо от cin и cout
и в основном предназначена для вывода псевдографики и обработки событий в консоли
Вы можете использовать cin,cout но на сколько я знаю, в этом случае внутреннее состояние библиотеки не определено
С помощью данной библиотеки вы можете обеспечить вывод текста в определенное место консоли, чем ползуются такие прогрпммы как midnight comander, но не возможно гарантировать правильность работы cin, cout
Тем самым рекомендуется использовать либо средства библиотеки, либо отказаться от нее
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
15.11.2013, 14:32  [ТС]     Консольная двойная буферирзация #6
coloc, Вроде все работает, но
1) мне нужно чтобы функция выводила текст без задавания координат
2) вместо hello пишет вопросы

А так спасибо за предложение)
Yandex
Объявления
15.11.2013, 14:32     Консольная двойная буферирзация
Ответ Создать тему
Опции темы

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