Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Color de letra en c

Estas en el tema de Color de letra en c en el foro de C/C++ en Foros del Web. Hola mi pregunta es, como puedo hacer para cambiar el color de una solo letra en la salida de consola, uso el dev c++, y ...
  #1 (permalink)  
Antiguo 27/11/2010, 21:47
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Color de letra en c

Hola
mi pregunta es, como puedo hacer para cambiar el color de una solo letra en la salida de consola, uso el dev c++, y pues como trabajo de la U estoy haciendo un pequeño juego y me interesaria saber como hago para cambiar el color de una sola letra de toda la salida, con la instruccion system("color"); cambia el color de toda la salida

agradeceria si me pueden ayudar.
  #2 (permalink)  
Antiguo 27/11/2010, 22:10
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Color de letra en c

Depende mucho del sistema operativo que estas usando....

LA consola no es algo nativo de C. Sino es el entorno donde corre c. C/c++ tienen ciertas opciones para configurar la consola pero depende mucho del sistema operativo.
  #3 (permalink)  
Antiguo 27/11/2010, 22:13
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Color de letra en c

si, bueno..... se me olvido ese pequeño detalle, el programa esta hecho para windows, por que como cosa rara todo en la universidad y por el monopolio microsoft los ingenieros salen ingenieros en windows.
  #4 (permalink)  
Antiguo 27/11/2010, 23:50
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Color de letra en c

en Windows, hasta donde yo se, apenas con algunos elementos de la WinAPI
te dejo un codigo de ejemplo:
Código C++:
Ver original
  1. #include "stdafx.h"
  2. #include "Windows.h"
  3.  
  4. #using <mscorlib.dll>
  5.  
  6. using namespace System;
  7.  
  8. int main()
  9. {
  10. HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
  11.  
  12. CONSOLE_SCREEN_BUFFER_INFO *ConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();
  13. GetConsoleScreenBufferInfo(hConsoleHandle, ConsoleInfo);
  14. WORD OriginalColors = ConsoleInfo->wAttributes;
  15.  
  16. Console::WriteLine(S"Colores Originales");
  17. Console::WriteLine(S"Presiona Enter para empezar");
  18. Console::ReadLine();
  19.  
  20. SetConsoleTextAttribute(hConsoleHandle,FOREGROUND_ GREEN);
  21. Console::WriteLine(S"Verde");
  22. Console::WriteLine(S"Presiona Enter para cambiar el color");
  23. Console::ReadLine();
  24.  
  25. SetConsoleTextAttribute(hConsoleHandle,FOREGROUND_ RED);
  26. Console::WriteLine(S"Rojo");
  27. Console::WriteLine(S"Presiona Enter para cambiar el color");
  28. Console::ReadLine();
  29.  
  30. SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_BLUE |FOREGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_ INTENSITY);
  31. Console::WriteLine(S"Ahora el texto es azul y el fondo es verde");
  32. Console::WriteLine(S"Presiona Enter para volver a la normalidad");
  33. Console::ReadLine();
  34.  
  35. SetConsoleTextAttribute(hConsoleHandle, OriginalColors);
  36. Console::WriteLine(S"de regreso a lo mismo");
  37. Console::WriteLine(S"Presiona Enter para salir");
  38. Console::ReadLine();
  39.  
  40. return 0;
  41. }
  #5 (permalink)  
Antiguo 27/11/2010, 23:53
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Color de letra en c

Hola, esta interesante el codigo, lo probare mañana, pero quisiera preguntar antes de irme a la cama, si es posible realizarlo con el printf
  #6 (permalink)  
Antiguo 29/11/2010, 02:32
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Color de letra en c

En MS-DOS podías cambiar los colores de salida empleando secuencias de escape y si tenías cargado el controlador ANSI.SYS. No sé si actualmente se podría hacer en modo consola. Mira, por ejemplo, aquí:

http://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI

http://iespuigcastellar.xeill.net/Me...s/escape-ansi/
  #7 (permalink)  
Antiguo 29/11/2010, 13:34
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Color de letra en c

Hola, bien pues he intentado usando las dos recomendaciones anteriores pero no me muestra colores
  #8 (permalink)  
Antiguo 30/11/2010, 15:57
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Color de letra en c

Hola

bien pues he encontrado la respuesta por mi mismo.
Aqui la dejo para todos los que busquen lo mismo:

Se debe incluir la libreria: windows.h

Código C:
Ver original
  1. #include <windows.h>
  2. ...
  3. SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE),4);
  4. printf("  X  ");

Con esta instruccion, se colorea la letra desde donde aparece el comando.
Para mas colores:

0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Purpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Purpura claro
E = Amarillo claro
F = Blanco brillante

como calcular X? Simple:
X=A*16+B;
A=color de fondo
B=color de texto
Asi, si queremos por ejemplo un texto azul claro sobre fondo amarillo:
X=6(fondo amarillo)*16+9(texto azul claro)= 105

Etiquetas: color, letra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:38.