Ir para o conteúdo
CSalgado

Cores.

Mensagens Recomendadas

CSalgado    1
CSalgado

Alguem me sabe dizer qual a forma mais simples de colocar uma cor diferente num printf? Como por exemplo um printf a verde ou azul.

Cumprimentos:

CSalgado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
darkangel_13    0
darkangel_13

#include <stdio.h>
#include <stdlib.h>

main ()
{
    char string1;
char string3 [20];
printf("Entre com string1\n");
scanf("%s",&string1);
system("color 02");
printf("String em verde %s\n",string1);
system("pause");
}

exemplo de cor verde

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
darkangel_13    0
darkangel_13

system("color 08");  a seguir a color metes a referencia que queres :confused:

0 = Black

1 = Blue

2 = Green

3 = Aqua

4 = Red

5 = Purple

6 = Yellow

7 = White

8 = Gray

9 = Light Blue

A = Light Green

B = Light Aqua

C = Light Red

D = Light Purple

E = Light Yellow

F = Bright White

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
CSalgado    1
CSalgado

Obrigado pela a ajuda.

Mas o que eu queria mesmo era que mudasse de cor apenas um unico printf e não todo programa.

É possivel fazer isso.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

Podes usar curses ou "ANSI Escape Sequences"

http://en.wikipedia.org/wiki/ANSI_escape_code

http://www.termsys.demon.co.uk/vtansi.htm

Exemplo

#include <stdio.h>

void setdisplayattr(const char *x) {
#define ESCAPE 27
  putchar(ESCAPE);
  putchar('[');
  while (*x) {
    putchar(*x++);
  }
  putchar('m');
}

int main(void) {
  printf("Ola ");
  setdisplayattr("1;32"); /* bright green */
  printf("Mundo");
  setdisplayattr(""); /* reset */
  printf(" Novo\n");
  return 0;
}

No meu computador isto imprime

Ola Mundo Novo

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

O problema nao e do compilador.

As "ANSI Escape Sequences" so funcionam em consolas que as suportam (tais como Linux, ou versoes antiquiquissimas do Windows).

Se queres um solucao multi-plataforma aconselho-te a usar curses (ncurses ou pdcurses).


Se preferes uma solucao so para Windows, ve a funcao SetConsoleTextAttribute() (tambem nao funciona no ideone!).

Exemplo, nao testado, copiado do StackOverflow

#include <stdio.h>
#include <windows.h>   // WinApi header

int main()
{
  HANDLE  hConsole;
    int k;

  hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  // you can loop k higher to see more color choices
  for(k = 1; k < 255; k++)
  {
    SetConsoleTextAttribute(hConsole, k);
    printf("%3d  %s\n", k, "I want to be nice today!");
  }

  getchar();  // wait
  return 0;
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade