A linguagem C nem sempre é "branco sobre fundo preto", ela também pode ser colorida, você pode chamar Windows.h
a SetConsoleTextAttribute
função no arquivo de cabeçalho para alterar o texto e a cor de fundo.
O formulário de chamada é:
SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );
hConsoleOutput
Indica o identificador do buffer do console, que pode ser obtido através de GetStdHandle(STD_OUTPUT_HANDLE)
; wAttributes
Indica a cor do texto e cor de fundo.
Não explorarei o significado de HANDLE aqui e o explicarei em detalhes no desenvolvimento do Windows posteriormente.
WORD
Nas windows.h
definições, equivalente a unsigned short
, o uso dos 4 bits inferiores representam a cor do texto (primeiro plano), os quatro bits superiores representam a cor do fundo do texto, de modo que seu valor é xx
. x é um número hexadecimal, ou seja, 0~F
ambos podem ser usados e combinados à vontade.
As cores representadas por 0 ~ F são as seguintes:
0 = preto 8 = cinza 1 = azul claro 9 = azul
2 = verde claro A = verde 3 = azul lago B = verde claro
C = vermelho 4 = vermelho claro 5 = roxo D
= roxo claro 6 = amarelo E = amarelo claro 7 = branco F = branco brilhante
Por exemplo, defina o fundo como verde claro e o texto como vermelho:
#include <stdio.h>
#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 0x2C );
puts("C语言中文网");
return 0;
}
Resultado final:
se você deseja apenas definir a cor do texto e manter o fundo preto, também pode fornecer apenas um número hexadecimal, por exemplo:
SetConsoleTextAttribute (hConsole, 0xC); // Definir a cor do texto para vermelho SetConsoleTextAttribute (hConsole, 0xF); // Definir a cor do texto para branco
Vejamos outro exemplo:
#include <stdio.h>
#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 0xC );
puts("红色文字");
SetConsoleTextAttribute(hConsole, 0xF );
puts("白色文字");
SetConsoleTextAttribute(hConsole, 2 );
puts("淡绿色文字");
return 0;
}
resultado da operação: