Hola!
He probado a cambiar el color del texto de mi programa, pero al ejecutarlo me da error "error: FOREGROUND was not declared on this scope" no entiendo por que el compilador entiende que foreground es una variable. Alguien puede ayudarme y decirme de paso si hay algún método más simple para cambiar el texto de color?
Gracias!
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HANDLE h=GetStdHandle( STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(h,FOREGROUND_BLUE |FOREGROUND INTENSITY);
cout<<"Blue"<<endl;
SetConsoleTextAttribute(h,FOREGROUND_RED |FOREGROUND INTENSITY);
cout<<"Red"<<endl;
SetConsoleTextAttribute(h,FOREGROUND_GREEN |FOREGROUND INTENSITY);
cout<<"Green"<<endl;
cin.get();
return 0;
}
Hola, te faltan los guiones bajos en FOREGROUND_INTENSITY. Tu código corregido es este:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HANDLE h=GetStdHandle( STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(h,FOREGROUND_BLUE |FOREGROUND_INTENSITY);
cout<<"Blue"<<endl;
SetConsoleTextAttribute(h,FOREGROUND_RED |FOREGROUND_INTENSITY);
cout<<"Red"<<endl;
SetConsoleTextAttribute(h,FOREGROUND_GREEN |FOREGROUND_INTENSITY);
cout<<"Green"<<endl;
cin.get();
return 0;
}
PD: No sé si hay un método más simple, pero no creo que haya algo más simple que lo que la WinAPI te ofrece.
Un saludo.
Sobre por que no compilaba tu codigo ya te respondieron. Respecto a tu duda
Citarno entiendo por que el compilador entiende que foreground es una variable
Eso se debe al analizador lexico que procesa tu código dado que se encuentra como parametro dentro de una funcion el compilador espera que lo que le pases sea uno de tres valores, una numero (Su valor), una constante previamente declarada o en su defecto una variable. Por eso como foreground no es constante lo interpreta como.si fuera una variable no declarada.
Pero ya te dijeron que le faltaba el Guion bajo.
Estando we windows y usando librerias estandar no, no hay nada mas simple...
como anectoda cuando aprendi a programar en C usabamos el turbo C y teníamos la biblioteca de funciones conio la cual usaba pero al ver que no era estandar me puse a reescribir casi toda la libreria en Ensamblador para segun yo usar esas funciones en otro lado :xD :xD
lo comento por que esa biblioteca de funciones (conio.h) se encontraban las funciones para cambiar de color el texto. Sin embargo NO la recomiendo por no ser estandar y tampoco recomiendo el ASM ( A no ser que quieras aprender ASM)
Saludos
Gracias a ambos por la ayuda, y si que es cierto que cuando uno es noob como yo se hacen muchas matadas por no saber estructurar o ir directamente al grano en el codigo :xD Pero bueno, eso imagino que son cosas que se acaban aprendiendo.
Un saludo!