Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dacan en 18 Marzo 2013, 15:23 pm



Título: [c] Cambiar de color?
Publicado por: Dacan en 18 Marzo 2013, 15:23 pm
Como puedo cambiar la letra de color en c, he intentado con muchos codigos que he encontrado online pero ninguno funciona.



Título: Re: [c] Cambiar de color?
Publicado por: pacoperico en 18 Marzo 2013, 15:34 pm
En msdos tienes el comando color:

Código:
c:\color 05

Y para usar en el lenguaje C los comandos del sistema tenemos la funcion system():

Código
  1. #include <stdlib.h>
  2.  
  3. system("color 05");


Título: Re: [c] Cambiar de color?
Publicado por: Dacan en 18 Marzo 2013, 16:11 pm
Si quiero cambiar el color solo a la letra de una parte del codigo es decir solo a un printf.


Título: Re: [c] Cambiar de color?
Publicado por: 0xDani en 18 Marzo 2013, 16:17 pm
Especifica sistema operativo, no es algo estandar.


Título: Re: [c] Cambiar de color?
Publicado por: pacoperico en 18 Marzo 2013, 16:57 pm
Creo que ya entiendo, no conozco ninguna funcion de la libreria estandar que haga eso, puede que haya alguna libreria por ahi que tenga una funcion asi pero no lo se.
 
Una solucion un poco cutre podria ser cambiar el color al color que tu quieras, lanzas el printf(), haces un pause por ejemplo, limpias la pantalla y reestableces el color. Bajo msdos seria:

Código
  1. #include <stdlib.h>
  2. system("color 04"); /*ponemos las letras en rojo*/
  3. printf("lo que sea");
  4. system("pause");
  5. system("cls");
  6. system("color 07"); /*reestablemos al color prdeterminado, fondo negro y letras blancas*/
  7.  


Título: Re: [c] Cambiar de color?
Publicado por: Puntoinfinito en 18 Marzo 2013, 19:36 pm
Código
  1. #include <stdlib.h>
  2. system("color 04"); /*ponemos las letras en rojo*/
  3. printf("lo que sea");
  4. system("pause");
  5. system("cls");
  6. system("color 07"); /*reestablemos al color prdeterminado, fondo negro y letras blancas*/
  7.  

Esta forma me parece la menos agraciada si estamos trabajando en C++, ya que estamos, usemos lo que nuestras librerías nos permiten de forma potente... Indica por favor sistema operativo y así te decimos con exactitud ;)


Título: Re: [c] Cambiar de color?
Publicado por: Dacan en 19 Marzo 2013, 01:20 am
Uso windows 7  ;D

Me funciona lo que me puso puntoinfinito pero como dicen no es la mejor forma de hacerlo o al menos eso considero.



Título: Re: [c] Cambiar de color?
Publicado por: MessageBoxA en 19 Marzo 2013, 06:41 am
Código
  1. HWND CurrentWin;
  2. CurrentWin = GetForegroundWindow();
  3. HANDLE consol;
  4. consol = GetStdHandle(STD_OUTPUT_HANDLE);
  5. SetConsoleTextAttribute(consol,FOREGROUND_BLUE);

tambien podrias emplearlo ya que asi te evitas tener que llamar a otro proceso dentro del tuyo en este caso el comando "color"