1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Cores no printf

Discussão em 'Programação' iniciada por UNDEATH, 13 de Novembro de 2005. (Respostas: 2; Visualizações: 1262)

  1. UNDEATH

    UNDEATH Power Member

    Oi pessoal! Tou com uma duvida tou a fazer um trabalho em c no linux e gostava de saber como se faz para mudar as cores das letras na chamada de um printf? Obrigado
     
  2. sapropel

    sapropel Power Member

    não é possivel com a biblioteca standard de C.
    isso só usando outra biblioteca. a ncurses que é standard em *nix por exemplo.
    "man curses" ou "man ncurses"
     
  3. inginheiiro

    inginheiiro Power Member

    Cores sem ncurses.

    Código:
    #include <stdio.h>
    
    #define RESET		0
    #define BRIGHT 		1
    #define DIM		2
    #define UNDERLINE 	3
    #define BLINK		4
    #define REVERSE		7
    #define HIDDEN		8
    
    #define BLACK 		0
    #define RED		1
    #define GREEN		2
    #define YELLOW		3
    #define BLUE		4
    #define MAGENTA		5
    #define CYAN		6
    #define	WHITE		7
    
    void textcolor(int attr, int fg, int bg);
    int main()
    {	textcolor(BRIGHT, RED, BLACK);	
    	printf("Cor...\n");
    	textcolor(RESET, WHITE, BLACK);	
    	return 0;
    }
    
    void textcolor(int attr, int fg, int bg)
    {	char command[13];
    
    	sprintf(command, "%c[%d;%d;%dm", 0x1B, attr, fg + 30, bg + 40);
    	printf("%s", command);
    }

    o formato é
    Código:
    <ESC>[{attr};{fg};{bg}m
    experimenta na shell escrever
    Código:
    echo "^[[0;31;40mA Cores"




    /ing
     

Partilhar esta Página