Pular para o conteúdo

Escrevendo Colorido no C

Este código-fonte mostra como escrever colorido no prompt do Linux pelo C. Com um pouco de criatividade é possível fazer coisas surpreendentes. Se você unir esta tecnica com ARTE-ASCII coisas lindas vão surgir. :D
O código está bem documentado e você so copiando e colando pode usar isso no seu código. Seria muito bem vindo se alguem cria-se uma biblioteca, um arquivo .h, desse código !
Jose Maria Silveira Neto jose_maria
Hits: 21.655 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este código-fonte mostra como escrever colorido no prompt do Linux pelo C. Com um pouco de criatividade é possível fazer coisas surpreendentes. Se você unir esta tecnica com ARTE-ASCII coisas lindas vão surgir. :D
O código está bem documentado e você so copiando e colando pode usar isso no seu código. Seria muito bem vindo se alguem cria-se uma biblioteca, um arquivo .h, desse código !
Download cores.c Enviar nova versão

Esconder código-fonte

#include<stdio.h>

// ANSI-Cores
#define C_VERMELHO     "\033[41m\033[37m"
#define C_VERDE        "\033[42m\033[30m"
#define C_LARANJA      "\033[43m\033[30m"
#define C_AZUL         "\033[44m\033[37m"
#define C_ROSA         "\033[45m\033[37m"
#define C_CIANO        "\033[46m\033[30m"
#define C_BRANCO       "\033[47m\033[30m"
#define C_PRETO        "\033[40m\033[37m"
#define RESTAURA       "\033[00m"

// Funcoes de cores
void vermelho (char string[]) {printf("%s%s%s\n",C_VERMELHO,string,RESTAURA);}

void verde (char string[]) 
{printf("%s%s%s\n",C_VERDE   ,string,RESTAURA);}

void laranja (char string[])
{printf("%s%s%s\n",C_LARANJA ,string,RESTAURA);}

void azul(char string[]) 
{printf("%s%s%s\n",C_AZUL    ,string,RESTAURA);}

void rosa(char string[])
{ printf("%s%s%s\n",C_ROSA    ,string,RESTAURA);}

void ciano    (char string[]) 
{printf("%s%s%s\n",C_CIANO   ,string,RESTAURA);}

void branco (char string[])
{ printf("%s%s%s\n",C_BRANCO  ,string,RESTAURA);}

void preto (char string[])
{printf("%s%s%s\n",C_PRETO   ,string,RESTAURA);}

// Principal
int main()
{
   vermelho("Vermelho");
   verde   ("Verde");
   laranja ("Laranja");
   azul    ("Azul");
   rosa    ("ROSA");
   ciano   ("Ciano");
   branco  ("Branco");
   preto   ("Preto");
}

Fila.h

Frases

Desenhando uma curva de Bézier

Cor da letra

Despertador em C

#1 Comentário enviado por birilo em 10/04/2004 - 14:46h
Meu, num testei isso ainda, mas já tá copiado...
Se tiver funcionando, vai ser uma mão na roda.... =)
#2 Comentário enviado por jose_maria em 23/04/2004 - 12:28h
O Gustavo Franco Porto me mandou um email pedindo para que eu explicasse o
funcionamento desse código ai vai.
O código-fonte que está aqui, eu não me lembro de ter colocado esses
#include<stdio.h>

// ANSI-Cores
#define C_VERMELHO     "\033[41m\033[37m"
#define C_VERDE        "\033[42m\033[30m"
#define C_LARANJA      "\033[43m\033[30m"
#define C_AZUL         "\033[44m\033[37m"
#define C_ROSA         "\033[45m\033[37m"
#define C_CIANO        "\033[46m\033[30m"
#define C_BRANCO       "\033[47m\033[30m"
#define C_PRETO        "\033[40m\033[37m"
#define RESTAURA       "\033[00m"

// Funcoes de cores
void vermelho (char string[]) {printf("%s%s%s\n",C_VERMELHO,string,RESTAURA);}

void verde (char string[]) 
{printf("%s%s%s\n",C_VERDE   ,string,RESTAURA);}

void laranja (char string[])
{printf("%s%s%s\n",C_LARANJA ,string,RESTAURA);}

void azul(char string[]) 
{printf("%s%s%s\n",C_AZUL    ,string,RESTAURA);}

void rosa(char string[])
{ printf("%s%s%s\n",C_ROSA    ,string,RESTAURA);}

void ciano    (char string[]) 
{printf("%s%s%s\n",C_CIANO   ,string,RESTAURA);}

void branco (char string[])
{ printf("%s%s%s\n",C_BRANCO  ,string,RESTAURA);}

void preto (char string[])
{printf("%s%s%s\n",C_PRETO   ,string,RESTAURA);}

// Principal
int main()
{
   vermelho("Vermelho");
   verde   ("Verde");
   laranja ("Laranja");
   azul    ("Azul");
   rosa    ("ROSA");
   ciano   ("Ciano");
   branco  ("Branco");
   preto   ("Preto");
}

dentro deles não. :P
Isso aí é ANSI, é um padrão mesmo, para o terminal. É um pouco trabalhoso, mas
não precisa aprender nenhuma outra biblioteca extra, e pode deixar os seus
progras em C bem mais bonitinhos. :*
É como eu digitar "\b" para tocar um beep ou "\n" para saltar um linha
Quando eu digo
#define C_VERDE "33[42m33[30m"
Eu estou dizendo que a cor de frente será a 42(verde) e a de fundo 30 (preta).
Esse programa está didático você pode reescreve-lo para ter uma função estilo
setbackgrounfcolor e setforegroundcolor.

Dica Bônus 1:
Limpando a tela de uma maneira bem diferente (ANSI):
printf("\033[H\033[2J");

Dica Bônus 2:
Execute para ver o que é:
#include<stdio.h>
int branco(int j){int k;for (k=0;k<j;k++){printf(" ");}}
int main(){int i;for(i=0;i<20;i++){printf("\033[H\033[2J");usleep(50000);
branco(i);printf(" __@\n");branco(i);
printf(" _`\\<,_\n");branco(i);printf(" (*)/ (*)\n");}}

:D
#3 Comentário enviado por pedro_reis em 12/11/2009 - 19:50h
Foi só comigo que esse código não funcionou? Compilei usando o gcc no Ubuntu 9.10
#4 Comentário enviado por pedro_reis em 12/11/2009 - 19:58h
p.s. Sim, eu tirei esses
#include<stdio.h>

// ANSI-Cores
#define C_VERMELHO     "\033[41m\033[37m"
#define C_VERDE        "\033[42m\033[30m"
#define C_LARANJA      "\033[43m\033[30m"
#define C_AZUL         "\033[44m\033[37m"
#define C_ROSA         "\033[45m\033[37m"
#define C_CIANO        "\033[46m\033[30m"
#define C_BRANCO       "\033[47m\033[30m"
#define C_PRETO        "\033[40m\033[37m"
#define RESTAURA       "\033[00m"

// Funcoes de cores
void vermelho (char string[]) {printf("%s%s%s\n",C_VERMELHO,string,RESTAURA);}

void verde (char string[]) 
{printf("%s%s%s\n",C_VERDE   ,string,RESTAURA);}

void laranja (char string[])
{printf("%s%s%s\n",C_LARANJA ,string,RESTAURA);}

void azul(char string[]) 
{printf("%s%s%s\n",C_AZUL    ,string,RESTAURA);}

void rosa(char string[])
{ printf("%s%s%s\n",C_ROSA    ,string,RESTAURA);}

void ciano    (char string[]) 
{printf("%s%s%s\n",C_CIANO   ,string,RESTAURA);}

void branco (char string[])
{ printf("%s%s%s\n",C_BRANCO  ,string,RESTAURA);}

void preto (char string[])
{printf("%s%s%s\n",C_PRETO   ,string,RESTAURA);}

// Principal
int main()
{
   vermelho("Vermelho");
   verde   ("Verde");
   laranja ("Laranja");
   azul    ("Azul");
   rosa    ("ROSA");
   ciano   ("Ciano");
   branco  ("Branco");
   preto   ("Preto");
}
do código

Contribuir com comentário

Entre na sua conta para comentar.