Cambiar color del texto por partes

Iniciado por Syrax, 2 Mayo 2018, 07:52 AM

0 Miembros y 1 Visitante están viendo este tema.

Syrax

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

master_1999

#1
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