2010-02-27 15 views

Respuesta

16

Esto depende del sistema operativo que esté utilizando.

Si está utilizando Windows que desea SetConsoleTextAttribute:

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // Get handle to standard output 
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE); 

También se pueden combinar los valores.

Una aplicación puede combinar los frontal y de fondo constantes a conseguir diferentes colores. Por ejemplo, la siguiente combinación da como resultado texto cian brillante sobre fondo azul.

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE

continuación, puede utilizar WriteFile o WriteConsole a escribir en realidad la de la consola.

+0

Me pregunto por qué esta respuesta no ha sido aceptada. – SwiftsNamesake

+0

Hola, quiero hacer un juego de consola y me preguntaba si había un artículo o página específica que describe todas estas funciones de consola relacionadas para cambiar el color del texto y esas cosas. –

-1

Sí, puede utilizar el sistema(); función para ejecutar comandos desde command.com y uno de esos es color. color a obtendrá el color verde que desee. también puede ver otros colores de la opción de ayuda color /? . y para lo audaz puedes usar caracteres de la tabla ascii para hacer eso. como "\ n" es Newline.

6

Sí, solo envía un standard escape sequence, p. Ej.

const char* green = "\033[0;32m"; 
    const char* white = "\033[0;37m"; 
    const char* red = "\033[0;31m"; 
    double profit = round(someComplicatedThing()); 
    std::cout << (profit < 0 ? red : (profit > 0 ? green : white)) 
       << "Profit is " << profit << white << std::endl; 

También obtener negrita vs normal de fondo, color, etc. El Wikipedia page on ANSI escape code tiene detalles, el Bash-Prompt HOWTO tiene ejemplos.

+5

No olvide documentar cómo cargar ANSI.SYS, no es automático. –

+9

Esto no funciona en Windows –

+2

Esto no funciona en Windows de fábrica. – Kyberias

3

You can use this tiny libraries which I have used personally before. Es muy fácil de usar e integrar con transmisiones estándar. Tiene una clara funcionalidad de pantalla de consola por cierto. Este ejemplo es de un código que he escrito:

std::cout << con::clr; // Clear the Intro Screen 
// fg means the foreground 
std::cout << std::endl << std::endl << con::fg_green 
    << "\t\tFile Encrypted!"; 
-2

Una forma rápida: incluye #include <stdlib.h> y luego añadir system("color 5B"); antes de que el texto que desee. Por lo que se verá así:

#include <stdlib.h> 
std::cout << "blblabla..."<<std::endl; 
system("color 5B"); 
std::cout<< "[done]" << std::endl; 

puede probar diferentes colores: 1A, 2B, 3C, 4F ...

Cuestiones relacionadas