Saltar al contenido

¿Cómo cambiar el color del texto y el color de la consola en code :: blocks?

Recuerda que en la informática cualquier problema casi siempre tiene varias resoluciones, no obstante aquí enseñamos la mejor y más óptimo.

Solución:

Funciones como color de texto trabajó en compiladores antiguos como turbo C y Dev C. En los compiladores actuales, estas funciones no funcionarían. Te voy a dar dos funcion SetColor y ChangeConsoleToColors. Copie y pegue el código de estas funciones en su programa y siga los siguientes pasos. El código que estoy dando no funcionará en algunos compiladores.

El código de SetColor es –

 void SetColor(int ForgC)
 
     WORD wColor;

      HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
      CONSOLE_SCREEN_BUFFER_INFO csbi;

                       //We use csbi for the wAttributes word.
     if(GetConsoleScreenBufferInfo(hStdOut, &csbi))
     
                 //Mask out all but the background attribute, and add in the forgournd     color
          wColor = (csbi.wAttributes & 0xF0) + (ForgC & 0x0F);
          SetConsoleTextAttribute(hStdOut, wColor);
     
     return;
 

Para utilizar esta función, debe llamarla desde su programa. Por ejemplo, estoy tomando su programa de muestra:

#include 
#include 
#include 
#include 
#include 

int main(void)

  SetColor(4);
  printf("n n t This text is written in Red Color n ");
  getch();
  return 0;


void SetColor(int ForgC)
 
 WORD wColor;

  HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO csbi;

                       //We use csbi for the wAttributes word.
 if(GetConsoleScreenBufferInfo(hStdOut, &csbi))
 
                 //Mask out all but the background attribute, and add in the forgournd color
      wColor = (csbi.wAttributes & 0xF0) + (ForgC & 0x0F);
      SetConsoleTextAttribute(hStdOut, wColor);
 
 return;

Cuando ejecute el programa obtendrá el color del texto en ROJO. Ahora te voy a dar el código de cada color –

Name         | Value
             |
Black        |   0
Blue         |   1
Green        |   2
Cyan         |   3
Red          |   4
Magenta      |   5
Brown        |   6
Light Gray   |   7
Dark Gray    |   8
Light Blue   |   9
Light Green  |   10
Light Cyan   |   11
Light Red    |   12
Light Magenta|   13
Yellow       |   14
White        |   15

Ahora te voy a dar el código de ChangeConsoleToColors. El código es –

void ClearConsoleToColors(int ForgC, int BackC)
 
 WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
               //Get the handle to the current output buffer...
 HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
                     //This is used to reset the carat/cursor to the top left.
 COORD coord = 0, 0;
                  //A return value... indicating how many chars were written
                    //   not used but we need to capture this since it will be
                      //   written anyway (passing NULL causes an access violation).
  DWORD count;

                               //This is a structure containing all of the console info
                      // it is used here to find the size of the console.
 CONSOLE_SCREEN_BUFFER_INFO csbi;
                 //Here we will set the current color
 SetConsoleTextAttribute(hStdOut, wColor);
 if(GetConsoleScreenBufferInfo(hStdOut, &csbi))
 
                          //This fills the buffer with a given character (in this case 32=space).
      FillConsoleOutputCharacter(hStdOut, (TCHAR) 32, csbi.dwSize.X * csbi.dwSize.Y, coord, &count);

      FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, csbi.dwSize.X * csbi.dwSize.Y, coord, &count );
                          //This will set our cursor position for the next print statement.
      SetConsoleCursorPosition(hStdOut, coord);
 
 return;

En esta función pasas dos números. Si desea colores normales, coloque el primer número como cero y el segundo número como color. Mi ejemplo es

#include           //header file for windows
#include 

void ClearConsoleToColors(int ForgC, int BackC);

int main()

ClearConsoleToColors(0,15);
Sleep(1000);
return 0;

void ClearConsoleToColors(int ForgC, int BackC)

 WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
               //Get the handle to the current output buffer...
 HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
                     //This is used to reset the carat/cursor to the top left.
 COORD coord = 0, 0;
                  //A return value... indicating how many chars were written
                    //   not used but we need to capture this since it will be
                      //   written anyway (passing NULL causes an access violation).
 DWORD count;

                               //This is a structure containing all of the console info
                      // it is used here to find the size of the console.
 CONSOLE_SCREEN_BUFFER_INFO csbi;
                 //Here we will set the current color
 SetConsoleTextAttribute(hStdOut, wColor);
 if(GetConsoleScreenBufferInfo(hStdOut, &csbi))
 
                          //This fills the buffer with a given character (in this case 32=space).
      FillConsoleOutputCharacter(hStdOut, (TCHAR) 32, csbi.dwSize.X * csbi.dwSize.Y, coord, &count);

      FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, csbi.dwSize.X * csbi.dwSize.Y, coord, &count );
                          //This will set our cursor position for the next print statement.
      SetConsoleCursorPosition(hStdOut, coord);
 
 return;
 

En este caso, puse el primer número como cero y el segundo número como 15, por lo que el color de la consola será blanco, ya que el código para el blanco es 15. Esto me funciona en code :: blocks. Espero que funcione para usted también.

También puede usar rlutil:

  • plataforma cruzada,
  • solo encabezadorlutil.h),
  • funciona para C y C ++,
  • implementos setColor(), cls(), getch(), gotoxy()etc.
  • Licencia: WTFPL

Tu código se convertiría en algo como esto:

#include 

#include "rlutil.h"

int main(int argc, char* argv[])

    setColor(BLUE);
    printf("n n t This is dummy program for text color ");
    getch();

    return 0;

Eche un vistazo a example.cy test.cpp para ejemplos de C y C ++.

Lo sé, llego muy tarde, pero puede que mi respuesta pueda ayudar a alguien. Básicamente es muy simple. Aquí está mi código.

#include
#include
using namespace std;
int main()

    HANDLE colors=GetStdHandle(STD_OUTPUT_HANDLE);

    string text;
    int k;
    cout<<" Enter your Text : ";
    getline(cin,text);
    for(int i=0;i9 ? k=0 : k++;

        if(k==0)
        
            SetConsoleTextAttribute(colors,1);
        else
        
            SetConsoleTextAttribute(colors,k);
        
        cout<

PRODUCCIÓN

Esta imagen le mostrará cómo funciona.

Si desea el tutorial completo, vea mi video aquí: Cómo cambiar el color del texto en C ++

Aquí puedes ver las comentarios y valoraciones de los lectores

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *