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

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

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

Author24 — интернет-сервис помощи студентам
Подскажите как реализовать двойную реализацию в консоли.

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

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


Как это все сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 22:35
Ответы с готовыми решениями:

Консольная программа
еще раз всем привет. есть некая java консольная программа, которая получает данные из некоторого...

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

Консольная псевдографика
Доброго времени суток, форумчанин. Суть дела: классы должны реализовывать графические примитивы...

консольная графика
задумал сделать карточную игру. надо чтобы информация оппонента выводилась с правой стороны окна....

5
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
14.11.2013, 22:39 2
посмотрите в сторону библиотеки ncurses
1
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.11.2013, 22:49  [ТС] 3
Цитата Сообщение от Cra3y Посмотреть сообщение
посмотрите в сторону библиотеки ncurses
А смогу ли я ее использовать исключительно для двойной буферизации, а остальная работа в обычном режиме?
0
погромист
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
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
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
14.11.2013, 23:04 5
ncurses работает независимо от cin и cout
и в основном предназначена для вывода псевдографики и обработки событий в консоли
Вы можете использовать cin,cout но на сколько я знаю, в этом случае внутреннее состояние библиотеки не определено
С помощью данной библиотеки вы можете обеспечить вывод текста в определенное место консоли, чем ползуются такие прогрпммы как midnight comander, но не возможно гарантировать правильность работы cin, cout
Тем самым рекомендуется использовать либо средства библиотеки, либо отказаться от нее
1
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
15.11.2013, 14:32  [ТС] 6
coloc, Вроде все работает, но
1) мне нужно чтобы функция выводила текст без задавания координат
2) вместо hello пишет вопросы

А так спасибо за предложение)
0
15.11.2013, 14:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2013, 14:32
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru