Analisei o código do @devair1010 , código está excelente, porém a questão da tela mudar de cor dessa forma ainda não é o meu objetivo atualmente, mas de qualquer forma dou nota 10 ao código.
Com esse código do Devair1010, eu criei códigos menores para que fique mais fácil de entender, até para mim mesmo caso futuramente se eu tiver dificuldade para relembrar o funcionamento do código e para que os usuários iniciantes como eu consiga compreender o código com mais rapidez
Observação: o segundo código que @LuisOPsum postou está dando vários erros de compilação.
1) Código do Devair1010 adaptado para somente para colorir texto com cor por trás:
#include <iostream>
#include <windows.h>
/* 0 1 2 3 4 5 6 7 8 */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY, /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/* 9 10 11 12 13 14 15 */
static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;
void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
__FOREGROUND = letras;
__BACKGROUND = fundo;
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
letras + (__BACKGROUND << 4));
}
using namespace std;
int main (){
textcolor(14,4);
printf ("Meu primeiro programa em C e C++ \n");
textcolor(2,1);/*primeiro cor letra, segundo cor fundo */
printf ("Obrigado por ler \n");
textcolor(14,12);
system ("pause");
textcolor(1,15);
}
2) Outro código do Devair1010 adaptado, esse é para colocar cor na tela, se colocar no 'printf (" ");' uma palavra, acontecerá que a tela mudará de cor e terá uma palavra escrita várias vezes, os textos 'Meu primeiro programa em C e C++' e 'Obrigado por ler' é possível colocar eles nos mesmos lugares ou em lugares diferentes, aqui vai o código:
#include <iostream>
#include <windows.h>
/* 0 1 2 3 4 5 6 7 8 */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY, /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/* 9 10 11 12 13 14 15 */
static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;
void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
__FOREGROUND = letras;
__BACKGROUND = fundo;
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
letras + (__BACKGROUND << 4));
}
/* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
COORD c;
c.X = x;
c.Y = y;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
using namespace std;
int main (){
int j;
textcolor(4,2);
for(j=0;j<300;j++)
printf("Clube do Hardware ");
gotoxy(0,0); // Posição do primeiro texto, necessário pois se não vai bugar
textcolor(14,4); /* primeiro cor letra, segundo cor fundo */
printf ("Meu primeiro programa em C e C++ \n\n");
textcolor(15,1);
printf ("Obrigado por ler \n\n");
textcolor(0,15); /* Serve para colorir a mensagem do sistema */
system ("pause");
}
3) Código do Devair1010 adaptado somente para colocar som e escrever texto, com esse exemplo, dar para ver o quão fácil é para colocar som nos programas feitos em C++
#include <iostream>
#include <windows.h>
int som(int toque){
Beep(toque,150);
}
using namespace std;
int main (){
int j;
for(j=50;j<3000;j+=500)
som(j);
printf ("Meu primeiro programa em C e C++ \n\n");
printf ("Obrigado por ler \n\n");
system ("pause");
return 0;
}
@LuisOPsum o seu segundo código não está funcionando, tive de remover algumas linhas para poder compilar, veja
#include <iostream>
#include <windows.h>
using namespace std;
int main ()
{
// HANDLE color=GetStdHandle(STR_OUTPUT_HANDLE);
system("color 90");
// SetconsoleTextAttribute(color,14);
printf ("Meu primeiro programa em C e C++ \n");
Sleep(1000);
// SetconsoleTextAttribute(color,10);
printf ("Obrigado por ler \n");
system ("pause");
return 0;
}
O texto depois de // é comentário, ele é ignorado pelo compilador, esse texto não compila
Quando eu tiro os // tá dando erros de compilação
Gostaria de saber se tem como meu programa abrir já com uma tela azul, sem precisar do programa ir preenchendo a cor azul. Obrigado.