Para simplicarles las cosas, hice esta pequeña librería (basándome en código que encontré por Internet) que engloba y unifica estas diferencias, de tal manera de hacerla independiente de la plataforma con tal de poder incluirla en programas de Windows o Linux con un uso común.
Es un simple archivo .h, que define los colores para pasárselos al cout de la siguiente forma:
cout<<color<<"texto de prueba";
Los colores disponibles son los siguientes:
black (negro), red (rojo), green (verde), yellow (amarillo), blue (azul), magenta (magenta), cyan (cian), white (blanco), normal (volver al color por defecto), blackb (negro en negrita), redb (rojo en negrita), greenb (verde en negrita), yellowb (amarillo en negrita), blueb (azul en negrita), magentab (magenta en negrita), cyanb (cian en negrita), whiteb (blanco en negrita), normalb (volver al color por defecto en negrita).
Es decir que si por ejemplo queremos mostrar un mensaje como el siguiente:
Mensaje con muchos colores
se debería escribir:
cout<<red<<"Mensaje "<<yellow<<"con "<<green<<"muchos "<<blueb<<"colores"<<normal;
Como en Windows no se puede especificar un atributo "negrita" para la consola, las versiones en negrita de los colores tienen una intensidad diferente de las versiones normales. En las siguientes imágenes se ven las diferencias entre Windows y Linux (código de ejemplo):
consola de Windows |
consola de Linux |
Para compilar, hay que definir la macro WIN si están en Windows, o LINUX si están en Linux. De esta forma se usa el código correspondiente dependiendo de la plataforma elegida.
Esto se hace con la opción -D de g++, por ejemplo:
g++ -o colores colores.cpp -DLINUX
Por ahora como se habrán dado cuenta sólo permite cambiar el color de frente y no el de fondo. A lo mejor en algún momento la amplíe incluyéndole esta funcionalidad.
La pueden descargar de acá: concolor.h
hola mira esta viendo lo q hiciste y me resulto de mucha ayuda pero me gustaria si podrias decirme como definir y donde definir el sitema operativo, desde ya muhcas gracias y gran trabajo felicidades!!!!
ResponderEliminarque maravilla me sirvio bastante
ResponderEliminarHola Jhony Soy Duvan y necesito tu ayuda, estoy usando la libreria, pero no he podido definir el sistema operativo como lo haces uso CODE::BLOCKS
ResponderEliminarHola Jhony Soy Duvan y necesito tu ayuda, estoy usando la libreria, pero no he podido definir el sistema operativo como lo haces uso CODE::BLOCKS
ResponderEliminarNo uso CODE::BLOCKS pero debés buscar en las opciones del mismo dónde pasarle parámetros personalizados al compilador, y ahí agregarle el SO con el -D.
EliminarHola johny, me gustó mucho lo que vi en el post asi que quize descargarlo pero el link esta caido...
ResponderEliminarPodés descargarlo ahora desde acá.
EliminarSaludos.
Hola Johny me podrias dar el link para descargar el ejemplo es que el link esta roto
ResponderEliminarEl link esta roto :´v
ResponderEliminarMuy bueno si funciona solo que yo tuve que cambiar #ifdef WIN por WINDOWS_KEY_WORD
ResponderEliminarver la siguiente url https://stackoverflow.com/questions/6649936/c-compiling-on-windows-and-linux-ifdef-switch