[C++] Как в консольном приложении очищать экран?

uran238

Есть в сях какая-нибудь функция аналогичная clrscr в паскале?

maggi14

есть в библиотеке <conio.h>. Хоть она в стандарт и не входит, но библиотека очень старая и широко известная.

Ivan8209

Есть tputs.
---
...Я работаю антинаучным аферистом...

evgen5555

ESC[2J

Ivan8209

Неправильно --- использовать tputs.
---
...Я работаю антинаучным аферистом...

yolki

system("cls");

Ivan8209

Ждём объяснения от настоящих виндузятников, как это
сделать по их мнению "правильно" и переносимо.
---
Q21: что такое Win2k?
A21: состема.

Marinavo_0507

> настоящих виндузятников
> переносимо

Ivan8209

Они же соблюдают POSIX!
Кстати, ещё ждём объяснения, как это сделать объектно-ориентированно.
---
...Я работаю антинаучным аферистом...

enochka1145

Решил-таки отстоять репутацию дебила?
Чем тебя clrscr из conio.h не устраивает?

maggi14

_asm
{
MOV AH,06
MOV AL,0
INT 10
}
говорят, должно сработать

Ivan8209

Тем, что это:
а) не переносимо;
б) особенность компилятора,
то есть не переносимо даже в пределах платформы.
Ну и, вдобавок, ни о каком ООП, как и о плюсах, речи не идёт.
---
...Я работаю антинаучным аферистом...

Ivan8209

А это не только платформозависимо, но ещё и использует устаревший интерфейс.
---
...Я работаю антинаучным аферистом...

maggi14

Еще можно так:
for (int i=0; i < 4000 / sizeof(int); i++)
int*)0xB800)[i] = 0;

maggi14

я знаю. Иначе бы я уже давно проверил, а не писал: "Говорят, должно сработать"

enochka1145

Еще можно так:
Здесь проблема в том, что консоль может иметь нестандартный размер.

Ivan8209

Особенно весело, если режим графический.
Или цвет фона установлен белый.
---
...Я работаю антинаучным аферистом...

enochka1145

Зачем тебе ООП? Очень хочется написать console.clear?
Если не можешь жить без своей переносимости, используй OpenGL.

maggi14

маза это не главный недостаток метода

disna

в библиотеке ncurses должно быть нечто похожее

Ivan8209

> Зачем тебе ООП?
Очень хочется узнать, как это сделать идеологически правильно с точки зрения ОО-программистов.
> Очень хочется написать console.clear?
Хочу узнать, как должен быть устроен ввод-вывод с учётом того,
что некоторые устройства являются в общем смысле терминалами.
Консолями, в понятиях исходной постановки вопроса.
> Если не можешь жить без своей переносимости, используй OpenGL.
OpenGL сработает через ssh?
---
...Я работаю антинаучным аферистом...

enochka1145

// Очень хочется узнать, как это сделать идеологически правильно с точки зрения ОО-программистов.
Тут кроме тебя никто не знает, что это за жывотное - ОО-программист. Так что думай сам.
// Хочу узнать, как должен быть устроен ввод-вывод с учётом того,
что некоторые устройства являются в общем смысле терминалами.
Консолями, в понятиях исходной постановки вопроса.
Как ты наверно догадываешься, есть iostream. Вот и смотри, как он устроен.
// OpenGL сработает через ssh?
А хрен знает. Через VNC Server - долж0н. Или это непереносимо и некошерно?

Ivan8209

// Очень хочется узнать, как это сделать идеологически правильно с точки зрения ОО-программистов.
> Тут кроме тебя никто не знает, что это за жывотное - ОО-программист. Так что думай сам.
Например --- кофеинщики.
// OpenGL сработает через ssh?
> А хрен знает. Через VNC Server - долж0н.
> Или это непереносимо и некошерно?
Это не просто некошерно, это непереносимо.
VNC --- это, подозреваю, не терминал, а аналог Х-сервера,
а я спрашиваю про терминал.
Ты полагаешь, для того, чтобы получить возможность очищать
зрительное пространство, необходимо иметь растровое или
векторное устройство?
---
...Я работаю антинаучным аферистом...

enochka1145

// Очень хочется узнать, как это сделать идеологически правильно с точки зрения ОО-программистов.
> Тут кроме тебя никто не знает, что это за жывотное - ОО-программист. Так что думай сам.
Например --- кофеинщики.

Ну-ну, пациент, держите себя в руках. Мы ведь про С++ говорим, а Вы сразу - кофеинщики, кофеинщики... В C#, кстати, есть класс Console, можете к C#-ерам поприставать.
Ты полагаешь, для того, чтобы получить возможность очищать
зрительное пространство, необходимо иметь растровое или
векторное устройство?
Во задвинул. Ну мне, положим, "чтобы получить возможность очищать
зрительное пространство" достаточно, чтобы мне не мешали глаза закрывать. А что в точности ты хотел сказать, я не понял.

Ivan8209

>>// Очень хочется узнать, как это сделать идеологически правильно с точки зрения ОО-программистов.
>>> Тут кроме тебя никто не знает, что это за жывотное - ОО-программист. Так что думай сам.
>> Например --- кофеинщики.
> Ну-ну, пациент, держите себя в руках. Мы ведь про С++ говорим,
Мы говорим о работе с терминалом.
> а Вы сразу - кофеинщики, кофеинщики...
А что, яванский язык перестал быть объектноориентированным?
> В C#, кстати, есть класс Console, можете к C#-ерам поприставать.
А мы уже.

>> Ты полагаешь, для того, чтобы получить возможность очищать
>> зрительное пространство, необходимо иметь растровое или
>> векторное устройство?
> Во задвинул. Ну мне, положим, "чтобы получить возможность очищать
> зрительное пространство" достаточно, чтобы мне не мешали глаза закрывать.
> А что в точности ты хотел сказать, я не понял.
То есть кофеинщики не в курсе, что в мире существуют разные устройства вывода,
среди которых встречаются те, что не поддерживают поточечной адресации.
---
"Narrowness of experience leads to narrowness of imagination."

Dasar

> в мире существуют разные устройства вывода,
> среди которых встречаются те, что не поддерживают поточечной адресации.
таких Консолей - нет, тебе только кажется что они есть.

Ivan8209

> таких Консолей - нет
Да?
Расскажи, как винда очищает экран через telnet.
---
...Я работаю антинаучным аферистом...

Dasar

зачем ты об это (telnet) мараешь гордое имя ОО-Консоль?
это - недостоино такого названия.

Ivan8209

Потому что терминал --- это то, что используется в telnet.
Ладно, рассказывай про любой другой терминал, какой знаешь.
Можешь про ssh рассказать, вы ведь наконец-то изобрели такое простое средство?
---
...Я работаю антинаучным аферистом...

Dasar

если серьезно.
то пора зазубрить, что объект - это, всего на всего, замыкание функций на экземпляр("единичное" состояние).
соответственно, все что делается через функции и процедуры, делается так же и через объекты.

vook

Вобщем юзаем PDCurses и erase;
Наверное единственный портабельный способ.

Ivan8209

> пора зазубрить, что объект - это, всего на всего,
> замыкание функций на экземпляр("единичное" состояние).
Мы уже давно установили, что это не так.
Мало того, ты при этом, насколько помню, присутствовал.
> соответственно, все что делается через функции
> и процедуры, делается так же и через объекты.
"Также" или "так же"?
---
...Я работаю антинаучным аферистом...

Ivan8209

То есть, надо притащить curses?
Со всеми их "curses".
---
...Я работаю антинаучным аферистом...

Ivan8209

> Мало того, ты при этом, насколько помню, присутствовал.
Память меня не подвела.
---
"Время эти понятья не стёрло..."

Dasar

> Мы уже давно установили, что это не так.
напомни, когда это было.

Ivan8209

Ровно полтора года назад.
---
"Время эти понятья не стёрло..."
Оставить комментарий
Имя или ник:
Комментарий: