URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3212
[ Назад ]

Исходное сообщение
"Как очистить экран в С под линуксом?"

Отправлено Piro , 27-Июл-04 14:14 
собственно говоря сабж. Сори за ламерский вопрос.

Содержание

Сообщения в этом обсуждении
"Как очистить экран в С под линуксом?"
Отправлено dimus , 28-Июл-04 08:48 
>собственно говоря сабж. Сори за ламерский вопрос.
Необходимо уточнение, о каком экране идет речь. Если это экран текстового терминала, то надо либо послать определенную эскейп-последовательность, либо, что медленно, но работает везде, забить его '\n' по числу строк.
В графическом режиме - зависит от того, что за графическую оболочку ты используешь.
Еще можно выключить питание компьютера - экран тут же очистится :)


"Как очистить экран в С под линуксом?"
Отправлено PiroMAN , 28-Июл-04 10:28 
>>собственно говоря сабж. Сори за ламерский вопрос.
>Необходимо уточнение, о каком экране идет речь. Если это экран текстового терминала,
>то надо либо послать определенную эскейп-последовательность, либо, что медленно, но работает
>везде, забить его '\n' по числу строк.
Сейчас обьясню, мне нужно постоянно выводить данные в строке в экран текстового терминала, тоесть внизу (или верху) экрана выводится 10 строчек, они постоянно обновляются.
НО, вот при такой штуке
for(i=0;i<25;i++)
printf("\n");
постоянно проскакивает "блымаие". Тоесть экран дергается, но строки остаются на месте, что исключает собой неправильное количество строк:-)

>В графическом режиме - зависит от того, что за графическую оболочку ты
>используешь.
А какие есть? Я начинающий программировать под unix.
>Еще можно выключить питание компьютера - экран тут же очистится :)
оне не очистится, он погаснет:)


"Как очистить экран в С под линуксом?"
Отправлено vnp , 28-Июл-04 11:58 
>>>собственно говоря сабж. Сори за ламерский вопрос.
>>Необходимо уточнение, о каком экране идет речь. Если это экран текстового терминала,
>>то надо либо послать определенную эскейп-последовательность, либо, что медленно, но работает
>>везде, забить его '\n' по числу строк.

tput clear

>Сейчас обьясню, мне нужно постоянно выводить данные в строке в экран текстового
>терминала, тоесть внизу (или верху) экрана выводится 10 строчек, они постоянно
>обновляются.
>НО, вот при такой штуке
>for(i=0;i<25;i++)
> printf("\n");

Так делать не надо. Откуда взялось 25?

>постоянно проскакивает "блымаие".

Извините, не понял.

>Тоесть экран дергается, но строки остаются на месте, что
>исключает собой неправильное количество строк:-)

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


"Как очистить экран в С под линуксом?"
Отправлено Piro , 28-Июл-04 13:10 
>Если можно, еще раз, и помедленнее: что пытаемся сделать, и что не
>работает...

в общем задача такая- создаю что то типа трафшоу. захватываю пакет и смотрю от кого и куда. вывожу на экран. соответственно по экрану побежала строка вверх(обычный вывод). хочется сделать так чтоб выводилась одна строка.
думаю сделать так: repeat очистка экрана- вывод строки-очистка экрана- вывод строки...


"Как очистить экран в С под линуксом?"
Отправлено klalafuda , 28-Июл-04 13:39 
>>Если можно, еще раз, и помедленнее: что пытаемся сделать, и что не
>>работает...
>
>в общем задача такая- создаю что то типа трафшоу. захватываю пакет и
>смотрю от кого и куда. вывожу на экран. соответственно по экрану
>побежала строка вверх(обычный вывод). хочется сделать так чтоб выводилась одна строка.
>
>думаю сделать так: repeat очистка экрана- вывод строки-очистка экрана- вывод строки...

man curses

// wbr


"Как очистить экран в С под линуксом?"
Отправлено Piro , 28-Июл-04 14:31 
>man curses
>
>// wbr

Оооооочень информативно!


"Как очистить экран в С под линуксом?"
Отправлено Soldier , 28-Июл-04 15:42 
>>man curses
>>
>>// wbr
>
>Оооооочень информативно!


Если без curses:

void clrscr(void) {
printf("\x1B[H\x1B[J");
}


"Как очистить экран в С под линуксом?"
Отправлено Vladislav Lazarenko , 28-Июл-04 17:07 
>>man curses
>>
>>// wbr
>
>Оооооочень информативно!

Ты man почитай, потом делай выводы об информативности.



"Как очистить экран в С под линуксом?"
Отправлено vnp , 28-Июл-04 20:48 
>>Если можно, еще раз, и помедленнее: что пытаемся сделать, и что не
>>работает...
>
>в общем задача такая- создаю что то типа трафшоу. захватываю пакет и
>смотрю от кого и куда. вывожу на экран. соответственно по экрану
>побежала строка вверх(обычный вывод). хочется сделать так чтоб выводилась одна строка.

Для _такого_ достаточно закончить строку возвратом каретки без перевода строки:

printf("%s\r", text);

>думаю сделать так: repeat очистка экрана- вывод строки-очистка экрана- вывод строки...

Ох и замельтешит же оно... глаз не жалко?


"Как очистить экран в С под линуксом?"
Отправлено dimus , 29-Июл-04 07:59 
Еще полезную информацию по поводу управления выводом на экран можно узнать, набрав
man console_codes
В этом руководстве приведены различные эскейп-последовательности, позволяющие очищать экран, менять цвета, позиционировать курсор куда надо и т.п.
Также совсем недавно промелькнула новость на тему статей по ncurses. Если не знаешь - это такая библиотека, которая поможет тебе бороться с терминалом. Можно делать в текстовом режиме всякие вкусности типа окошек и т.п. Почитай - пригодится. Кстати, по поводу программы, что ты задумал. Есть такая программа - iptraf - она уже все это делает, и причем очень неплохо. Посмотри, может стоит написать что-то еще?

"Как очистить экран в С под линуксом?"
Отправлено Piro , 29-Июл-04 13:13 
Есть
>такая программа - iptraf - она уже все это делает, и
>причем очень неплохо. Посмотри, может стоит написать что-то еще?
Господа, я просто поставил себе задачу- научится программировать под UNIX.
Причем хочется пошупать сокеты и тд, в общем сеть. Я начинаюший. А по поводу ncurses то скорее всего его просто нет.


"Как очистить экран в С под линуксом?"
Отправлено klalafuda , 29-Июл-04 14:38 
>Господа, я просто поставил себе задачу- научится программировать под UNIX.
>Причем хочется пошупать сокеты и тд, в общем сеть. Я начинаюший. А
>по поводу ncurses то скорее всего его просто нет.

это где нет *curses ?

// wbr


"Как очистить экран в С под линуксом?"
Отправлено PiroMAN , 29-Июл-04 14:42 
>это где нет *curses ?

Linux Slackware 2.2.6 Раритет не спорю.
Но у меня на работе этот гроб с колесиками единственный линух. Я вобще больше фрю люблю. Но книг по порограмированию сетевых приложений, да и вобще всего что связано с программированием больше под линух. Если подскажете где можно нарыть под BSD буду признателен.


"Как очистить экран в С под линуксом?"
Отправлено Vladislav Lazarenko , 29-Июл-04 14:46 
>>это где нет *curses ?
>
>Linux Slackware 2.2.6 Раритет не спорю.
>Но у меня на работе этот гроб с колесиками единственный линух. Я
>вобще больше фрю люблю. Но книг по порограмированию сетевых приложений, да
>и вобще всего что связано с программированием больше под линух. Если
>подскажете где можно нарыть под BSD буду признателен.

А есть существенные различия по программированию сетевых придлжений ?

Да и вообще, чем дальше в "лес", тем больше "дров" ...
Мой тебе совет, используй к примеру CommonC++ (http://www.gnu.org/software/commoncpp/) и не *би себе и другим мозги.

А на счет *curses, эта библиотека есть везде .... без неё никуда.