Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Syrax en 2 Mayo 2018, 07:52 am



Título: Cambiar color del texto por partes
Publicado por: Syrax en 2 Mayo 2018, 07:52 am
Buenas, quisiera saber como podría hacer para que en un texto se imprima de un color diferente solo las palabra que el usuario decida, por ejemplo "el" entonces el perro se comió la tarea


Título: Re: Cambiar color del texto por partes
Publicado por: master_1999 en 2 Mayo 2018, 08:10 am
Puedes hacerlo si realmente quieres, simplemente prepárate para que se llene de cosas.

De todos modos, para usar esa función, el primer argumento es un identificador para el búfer de la pantalla de la consola, y el segundo es el atributo de color real vinculado junto con bitwise o (el único |). Debes leer en los controles, asumiendo que no sabes mucho sobre ellos, si haces más programación de Windows. Y también es útil aprender sobre operadores bit a bit.

Citar
#include <iostream>
#include <windows.h>

int main()
{
   HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

   std::cout << "Default console color" << std::endl;

   SetConsoleTextAttribute(hConsole, (FOREGROUND_GREEN | FOREGROUND_GREEN | FOREGROUND_GREEN));
   std::cout << "Bright purple text with dark green cell." << std::endl;

   SetConsoleTextAttribute(hConsole, (FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN));
   std::cout << "Back to default console color" << std::endl;

   return 0;
}

El handle es básicamente un puntero, es un identificador para la instancia de su programa de la ventana de la consola, y en este caso es para la salida de la consola.

las cosas en mayúsculas están predefinidas por Microsoft, y se combinan para hacer diferentes colores.

Aquí hay un par de enlaces que pueden ayudar en algo:
https://docs.microsoft.com/en-us/windows/console/setconsoletextattribute
https://docs.microsoft.com/en-us/windows/console/console-screen-buffers#_win32_character_attributes