LINUX.ORG.RU

ncurses + clear


0

0

Как чистить экран в ncurses? Нужна аналогия system("clear"). clear() (wclear(stdscr), werase(curscr) и прочие методотычные комбинации из манов) ничего не чистит, initscr() чистит но разваливает терминал (ентеры потом странно работают).

Мда похоже это сложно но printf( "\033[H\033[J" ) помогает, отсюда вопрос как такое читать? 033 это ведь esc? это можно набрать с клавиатуры? как? что такое [H и прочие [2J? как это клепать?

dissident ★★
() автор топика
Ответ на: комментарий от unnamed

Так и не понял как вклепать ESC [ 2J руками ;) Видимо это еще из тех времен пришло, когда оператор должен был знать свою машину до винтиков и эти знания ходили как легенды по людях. :)

dissident ★★
() автор топика
Ответ на: комментарий от ananas

#include <curses.h> 

int main()
{
    wclear(stdscr);
    wrefresh(stdscr);
}

Неа.

    wclear(curscr);
    wrefresh(curscr);

Неа.

    clear();
    refresh();

Неа.

Эмулятор mrxvt.

muf@cocaine:~/fff$ set | grep TERM
COLORTERM=rxvt-m
TERM=rxvt
TERMCMD=mrxvt
muf@cocaine:~/fff$ 

Да ладно, Б-г с ними с ncurses (хотя таки интересно),
расскажите лучше как вклепать ESC [ 2J ;))


dissident ★★
() автор топика
Ответ на: комментарий от Chumka

srahuzau@brylant:~/ddd$ cat dd.c
#include <ncurses.h>

int main()
{
        initscr();
        clear();
        refresh();
        endwin();
}


srahuzau@brylant:~/ddd$ gcc -lncurses dd.c
srahuzau@brylant:~/ddd$ ./a.out
srahuzau@brylant:~/ddd$

Nea..

srahuzau@brylant:~/ddd$ set | grep TERM
TERM=xterm
srahuzau@brylant:~/ddd$

Escape posledovatelnosc rabotaet chudesno, no vse tak zhe neizvestno
kak ee vklepat' ruchkami nazhmiaja neskolko klawishej iz chistogo 
lubopytstwa (mozhet nikak? ;))

anonymous
()
Ответ на: комментарий от anonymous

Hotja vozmozhno chto privedennyj kod ne rabotaet iz-za putty (zalez cherez nego iz windy). Hotja te zhe escape posledovatelnosti rabotajut chudno. Doma eshe proverju na normalnom terminale.

dissident ★★
() автор топика
Ответ на: комментарий от Chumka

muf@cocaine:~/fff$ cat ff.c
#include <ncurses.h>

int main(void) { initscr(); clear(); refresh(); endwin(); }
muf@cocaine:~/fff$ gcc -lncurses ff.c
muf@cocaine:~/fff$ ./a.out
muf@cocaine:~/fff$

Без endwin() окно чистит, но портит терминал... Эх, ну ладно. Надеюсь мне не придется в этом писать. ;)

dissident ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.