Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Ubuntu 7.04 + E17
Por micmend
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Jose Maria Silveira Neto em 05/04/2004    [ 10389 hits ]

Login: jose_maria, 243242 pontos

   


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     "{FONTE}33[41m{FONTE}33[37m"
#define C_VERDE        "{FONTE}33[42m{FONTE}33[30m"
#define C_LARANJA      "{FONTE}33[43m{FONTE}33[30m"
#define C_AZUL         "{FONTE}33[44m{FONTE}33[37m"
#define C_ROSA         "{FONTE}33[45m{FONTE}33[37m"
#define C_CIANO        "{FONTE}33[46m{FONTE}33[30m"
#define C_BRANCO       "{FONTE}33[47m{FONTE}33[30m"
#define C_PRETO        "{FONTE}33[40m{FONTE}33[37m"
#define RESTAURA       "{FONTE}33[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");
}

Scripts recomendados
   Script Linux recomendado Distribuição Eletronica de Elementos Químicos em C++
   Script Linux recomendado Como verificar a validade de um CPF
   Script Linux recomendado Um pouco de fisica
   Script Linux recomendado A - Comando Strcat
   Script Linux recomendado Integração numérica - Método da Quadratura Gaussiana

Comentários
[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 {FONTE}
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("{COMENTARIO}33[H{COMENTARIO}33[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("{COMENTARIO}33[H{COMENTARIO}33[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 {FONTE} do código


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.