Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2011, 17:54   #1
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию Как ускорить вывод текстовой информации в консоль

предположим есть двумерный массив [80][20],который полностью забит '*' и выводится этот массив на экран ,соответственно 80 столбцов по 20 строк звездочек
Код:
for(j=0;j<VERT;j++)
    for(i=0;i<GORIZ;i++)
        putchar(main[i][j]);
и ниже этого есть небольшая полоска ________,которая с помощью функции getch() двигается влево и вправо с помощью клавиш a и d соотв.
Так вот, когда обновляешь положение полоски - заново прорисовывается массив и в этот момент заметно как он поэтапно прорисовывается.
Так вот как ускорить вывод этого самого массива на экран

PS чтобы очистить экран юзаю system("cls");
Hemul вне форума Ответить с цитированием
Старый 17.01.2011, 18:21   #2
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

пробовали использовать gotoxy() для перерисовки?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 17.01.2011, 18:35   #3
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Цитата:
Сообщение от kaljan775 Посмотреть сообщение
пробовали использовать gotoxy() для перерисовки?
я насколько понимаю это для борланда ,а мой вс не находит их
(подключены
#include <windows.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>)

Последний раз редактировалось Hemul; 17.01.2011 в 19:03.
Hemul вне форума Ответить с цитированием
Старый 17.01.2011, 18:36   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

используй другой эмулятор терминала
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 17.01.2011, 18:54   #5
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
используй другой эмулятор терминала
а по подробнее,как это можно сделать?
Hemul вне форума Ответить с цитированием
Старый 17.01.2011, 19:52   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Точно не помню, но кажется как-то так:
Код:
#include <windows.h>

// ...

void gotoxy (int x, int y) {
    COORD coordinates = { x, y };
    HANDLE outputHandle = GetStdHandle (STD_OUTPUT_HANDLE);

    SetConsoleCursorPosition (outputHandle, coordinates);
}
netrino вне форума Ответить с цитированием
Старый 17.01.2011, 20:10   #7
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Код:
#include <windows.h>

// ...

void gotoxy (int x, int y) {
    COORD coordinates = { x, y };
    HANDLE outputHandle = GetStdHandle (STD_OUTPUT_HANDLE);

    SetConsoleCursorPosition (outputHandle, coordinates);
}
не мерцает,но остается "след" от движущегося обьекта

Последний раз редактировалось Hemul; 17.01.2011 в 20:22.
Hemul вне форума Ответить с цитированием
Старый 17.01.2011, 20:28   #8
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

в каком смысле след? пропадающий или остается линия?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 17.01.2011, 20:30   #9
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

остается линия
Код:
a=getch();
	if(a=='d')
		p++;
	else if(a=='a')
		p--;
	for(i=0;i<p;i++)
		putchar(' ');
	printf("*****");
вот такой механизм вывода,то есть если двигать влево,остается хвост справа,который ничем не очищается ,что делать?

Последний раз редактировалось Hemul; 17.01.2011 в 20:37.
Hemul вне форума Ответить с цитированием
Старый 17.01.2011, 20:36   #10
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ну так затирать надо, вестимо дело. Пробелом например.
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# строки(Обработка текстовой информации ) Bakalavr Помощь студентам 3 26.12.2010 23:29
Обработка текстовой информации С++ Перфаратар Общие вопросы C/C++ 2 30.11.2010 21:12
Обработка текстовой информации С++ Перфаратар Помощь студентам 0 29.11.2010 23:02
Хранение текстовой информации diliana Софт 11 23.12.2009 13:24
Вывод текстовой информации из документа TXT. soonner PHP 2 09.05.2009 21:57