2012-01-18 15 views
5

Ok, me preguntaba cómo las aplicaciones de consola como top(1) para Linux sobrescriben varias líneas. Quiero saber cómo hacerlo para C++ o C. Sé cómo sobrescribir 1 línea simplemente colocando un \ r pero quería saber cómo hacerlo para múltiples líneas, de nuevo como en la parte superior o si es posible.Sobreescritura de consola como superior

+2

Depende de la plataforma. ¿En que plataforma Estas tu? – Jon

+0

Linux es probablemente donde voy a querer hacer esto – csteifel

Respuesta

3

Utilizan secuencias de escape de terminal para mover el cursor por la pantalla. Algunos incluso usan acceso directo al framebuffer, para tratar la pantalla como una matriz de caracteres que pueden indexarse ​​directamente.

La biblioteca curses (o ncurses) es una buena capa de abstracción.

+0

Solo una nota, pero curses no existe realmente en Windows: [Es ncurses disponible para Windows] (http://stackoverflow.com/q/138153/ 16487) –

+0

@ C.Ross: esa pregunta se refiere a los emuladores de reemplazo de terminal que admiten la API de maldiciones. 'curses' está ciertamente disponible para aplicaciones en modo consola. –

+0

pdcurses en realidad es muy útil, no he tenido ningún problema para portar mis aplicaciones ncurses usando caracteres ASCII básicos a pdcurses en Windows. Si está utilizando ncursesw, la encarnación de ncurses compatible con UTF-8, probablemente se encontrará con muchos más problemas. –

2

Esto puede no abordar directamente la pregunta, pero este tipo de cosas depende del terminal y se realiza comúnmente con una implementación de curses (ncurses es el más utilizado).

Cuestiones relacionadas