2011-10-24 27 views
21

aplicaciones pueden manipular consolas basados ​​en texto o terminales, y cambiar sus colores, ajustar la posición del cursor, ...consola basada en texto portátil manipulador

Los enfoques compatibles son:

pero, ¿hay alguna biblioteca ligera y portátil C/C++ que se ocupa de las diferencias entre los sistemas operativos sólo para los colores y del cursor?y no hacer nada si era técnicamente imposible, pero mejor esfuerzo

Nota: No estoy en busca de herramientas externas pesadas para emular terminales de tipo Unix (como Cygwin, Msys-rxvt, ...). Creo que una simple portabilidad se logrará con las API de Windows y los códigos de escape de ANSI.
Y no ncurses porque es pesado y tiene muchas funciones a la consola de control total y creo que necesita la emulación

Nota (2): Mi anterior y feo esfuerzo es una biblioteca Console para Windows, que escrito en VC++ 6, pero no es portátil ... Puede verlo here.

+4

google: ncurses. – Nim

+1

@Nim: Necesita emulador de terminal para Windows - Lea mi pregunta actualizada – deepmax

+2

@MasoudM .: Hay PDCurses en Windows (** [MonoCurses] (http://www.mono-project.com/Libraries#Curses) ** aparentemente lo usa) – sehe

Respuesta

25

bien, i finalmente encontró un portátil y fácil de utilizar la biblioteca: rlutil.h

Uso:

#include <iostream> 
#include "rlutil.h" 
int main() 
{ 
    for (int i = 0; i < 16; i++) 
    { 
     rlutil::setColor(i); 
     std::cout << i << " "; 
    } 
    std::cout << std::endl; 
    return 0; 
} 

pero, me alegraré por otras sugerencias.

+11

Buen hallazgo. aunque me pregunto si debería dudar del dominio del desarrollador por sus elecciones de color en su sitio web. :) – Scott

+0

¿Alguien sabe cómo restablecer los colores a los valores predeterminados? Una vez que los cambio, el color predeterminado de la terminal se convierte en el color que utilicé por última vez, y ningún color se correlaciona con el color predeterminado en ninguno de los terminales que probé ('xterm',' gnome-terminal', y el venerable 'cmd.exe') – Thomas

+0

Difícil de presentar el acuerdo de licencia para mi gente legal. :-) – Jamie