Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
1

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

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

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

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

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


Как это все сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 22:35
Ответы с готовыми решениями:

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

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

консольная псевдографика
как узнать текущее положение консольного курсора, не мыши, а именно того,...

Консольная графика
Доброго времени суток. Подскажите, как подключить консольную графику в visual...

консольная графика
Помогите, пожалуйста, с графикой. Не выводит на экран рисунок. # include...

5
Max Dark
шКодер самоучка
1968 / 1745 / 860
Регистрация: 09.10.2013
Сообщений: 3,853
Записей в блоге: 6
Завершенные тесты: 2
14.11.2013, 22:39 2
посмотрите в сторону библиотеки ncurses
1
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.11.2013, 22:49  [ТС] 3
Цитата Сообщение от Cra3y Посмотреть сообщение
посмотрите в сторону библиотеки ncurses
А смогу ли я ее использовать исключительно для двойной буферизации, а остальная работа в обычном режиме?
0
coloc
погромист
411 / 247 / 30
Регистрация: 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");
}
1
Max Dark
шКодер самоучка
1968 / 1745 / 860
Регистрация: 09.10.2013
Сообщений: 3,853
Записей в блоге: 6
Завершенные тесты: 2
14.11.2013, 23:04 5
ncurses работает независимо от cin и cout
и в основном предназначена для вывода псевдографики и обработки событий в консоли
Вы можете использовать cin,cout но на сколько я знаю, в этом случае внутреннее состояние библиотеки не определено
С помощью данной библиотеки вы можете обеспечить вывод текста в определенное место консоли, чем ползуются такие прогрпммы как midnight comander, но не возможно гарантировать правильность работы cin, cout
Тем самым рекомендуется использовать либо средства библиотеки, либо отказаться от нее
1
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
15.11.2013, 14:32  [ТС] 6
coloc, Вроде все работает, но
1) мне нужно чтобы функция выводила текст без задавания координат
2) вместо hello пишет вопросы

А так спасибо за предложение)
0
15.11.2013, 14:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2013, 14:32

Консольная графика
Здравствуйте, я написал этот код в Борланд С++ (пример нашел в книге):...

Консольная команда и С++
Добрый вечер. Что использовать в С++ чтобы запустить Java приложение таким...

Консольная змейка
Добрый день. С недавнего времени я пишу в консоли игру с одноименным...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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