Ir ao conteúdo
  • Cadastre-se

C++ Programa em C ou C++ com texto colorido? como criar? estou usando Dev-C++


Posts recomendados

Como criar um programa em C ou C++, com texto colorido?

 

Eu estou usando:

Sistema operacional Microsoft Windows 7

Compilador Dev-C++

 

O código do meu programa é este:

#include <iostream>
using namespace std;
int main ()
{
    printf ("Meu primeiro programa em C e C++ \n");
    printf ("Obrigado por ler \n");
    system ("pause");
    return 0;
}

 

Eu quero colocar a frase "Meu primeiro programa em C e C++" na cor amarela e o texto "Obrigado por ler" na cor verde,

Se possível, também quero colocar o fundo na cor azul

 

Já tentei pesquisar na internet, mas não consigo nenhuma forma de fazer isso :(. Sou iniciante na linguagem C e C++ .

 

Observação: system ("pause") eu acho que só funciona no Windows, e não funciona no Linux

 

Obrigado

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Valter Caxias    na linguagem c / c++ não tem nenhum comando para usar cor , então para isso precisa ser criada uma função , então usa-se uma função com o mesmo nome da função do pascal que é textcolor e aqui também tem outra função baseada na função  do pascal que é a função gotoxy , essa função posiciona o cursor em determinada posição da tela , e outra para cria som usando um comando do c / c++ que é a função som usando o comando Beep , o typedef enum serve para poder escolher uma cor usando o nome da cor ou se preferir use o número da cor que começa em zero e vai até 15 , então para especificar qual cor , coloque o número dela dentro dos parenteses na chamada da função textcolor , sendo que o primeiro número é a cor de cada letra e o segundo número é a cor de fundo de cada caractere do texto , mas esse código só funciona no windows pois precisa dessa biblioteca , então seu código com algumas modificações ficaria assim  :
 

#include <iostream>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int som(int f){
    Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */
    return 0;
}
using namespace std;
int main (){
    int j;
    textcolor(0,1);
    system("cls");
    for(j=500;j<3000;j+=500)
        som(j);
    gotoxy(0,5);
    textcolor(14,1);
    printf ("Meu primeiro programa em C e C++ \n\n");
    textcolor(10,12);/*primeiro cor letra, segundo cor fundo */
    printf ("Obrigado por ler \n\n");
    textcolor(11,1);
    system ("pause");
    textcolor(15,1);
    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

4 horas atrás, Valter Caxias disse:

Sou iniciante na linguagem C e C++ .

C é uma linguagem de programação, e C++ é outra linguagem de programação, apesar de terem muitas coisas em comum devido ao fato de C++ ter originado a partir do C elas não são a mesma.

 

Eu recomendo concentrar-se em aprender 1 delas por vez, senão vai ter muita confusão, pois tem coisas que funcionam em uma mas não na outra e vice-versa, e o fato delas terem várias coisas em comum só vai deixar isso mais confuso.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@devair1010 Fui no link que o Ansic indicou. Além de baixar eu seguir as instruções de configuração do conio.h para o Dev C++ , Devair1010 escrevi esse código aqui no compilador e funcionou, obrigado :)

 

@isrnick Achava que a linguagem C++ funcionava tudo que funciona em C++ e em C

E que C somente funcionava as coisas de C

Então, Isnick obrigado pela explicação

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@devair1010 Bem na verdade eu copiei o código, é que na hora de responder ficou um pouco bugado e então salvei logo, tentei editar o texto mas não consegui

 

A conio2.h eu acho que funcionou devido que se não tivesse colocado a conio2.h talvez o código não iria funcionar, mas eu não sei

Vou ler esse código com atenção e talvez vou pesquisar no Google sobre ele. 

 

Não só sou iniciante em C e C++ , como também sou iniciante em programação em geral.

 

Eu já tentara criar o 'Programa Olá Mundo!' em Assembly mas não consegui, então partir para a linguagem C

 

Estou lendo um "livro" chamado 'Programando em C/C++ A "Bíblia"', não tenho ele impresso, ele está no formato pdf, não sei de que época é o "livro", nos capítolos de 77 a 80 diz para usar controlador de dispositivo ANSI para algumas coisas, uma das coisas é a questão do texto. O livro vai até o capítolo 1500.

 

Aqui está a imagem do 'Meu primeiro programa em C e C++':

 

kNGlQjE.png

 

"Primeiro" entre aspas 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Olá...

Esse faz.:

#include <windows.h>
#include <iostream>
using namespace std;
int main(int args, char *argv[]){
    char n;
    cout << "\n\n\t\tQuem foi Penta-Campeão da Copa do Mundo de 2002.: "<< endl;
     cin >> n;
     cout << n;
     switch(n){
          case 'B':{
        for(int i; i>= i++;){
            system("color 0E");
            Sleep(1000);
            system("color 0A");
            Sleep(1000);
        cout << "\n\n\t\tParabens!!!  \\O*";}
        }    
         default: cout << " Resposta Errada!!!\n";
     }
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

  • Obrigado 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Valter Caxias       que bom que funcionou no seu dev c++ ,   e esse código não precisa da biblioteca conio2.h para funcionar ,   o @LuisOPsum  mostrou um comando do c para usar cor e eu havia esquecido desse comando  que realmente funciona mas ele é bem limitado ,   e para colocar a palavra  " primeiro "  entre aspas , você pode colocar isso no texto que vai escrever imprimindo o caractere ascii de aspas dupla assim  :

printf ("Meu %c primeiro %c programa em C e C++ \n\n",34,34);

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá...

Corrigindo e deixado conforme o enunciado.

 #include <iostream>
 #include <windows.h>
using namespace std;
int main ()
{
    HANDLE color=GetStdHandle(STR_OUTPUT_HANDLE);
    system("color 90");
    SetconsoleTextAttribute(color,14);
    printf ("Meu primeiro programa em C e C++ \n");
    Sleep(1000);
    SetconsoleTextAttribute(color,10);
    printf ("Obrigado por ler \n");
    system ("pause");
    return 0;
}

Espero ter ajudado e até...

Luís.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Analisei o código do @devair1010 , código está excelente, porém a questão da tela mudar de cor dessa forma ainda não é o meu objetivo atualmente, mas de qualquer forma dou nota 10 ao código.

 

Com esse código do Devair1010, eu criei códigos menores para que fique mais fácil de entender, até para mim mesmo caso futuramente se eu tiver dificuldade para relembrar o funcionamento do código e para que os usuários iniciantes como eu consiga compreender o código com mais rapidez

 

Observação: o segundo código que @LuisOPsum postou está dando vários erros de compilação.

 

1) Código do Devair1010 adaptado para somente para colorir texto com cor por trás:

 

#include <iostream>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}

using namespace std;
int main (){

    textcolor(14,4);
    printf ("Meu primeiro programa em C e C++ \n");
    
    textcolor(2,1);/*primeiro cor letra, segundo cor fundo */
    printf ("Obrigado por ler \n");

    textcolor(14,12);
    system ("pause");
    textcolor(1,15);

}

2) Outro código do Devair1010 adaptado, esse é para colocar cor na tela, se colocar no 'printf (" ");' uma palavra, acontecerá que a tela mudará de cor e terá uma palavra escrita várias vezes, os textos 'Meu primeiro programa em C e C++' e 'Obrigado por ler' é possível colocar eles nos mesmos lugares ou em lugares diferentes, aqui vai o código:

 

#include <iostream>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}


using namespace std;
int main (){
    int j;
    textcolor(4,2);
    for(j=0;j<300;j++)
        printf("Clube do Hardware ");

    gotoxy(0,0); // Posição do primeiro texto, necessário pois se não vai bugar
    
    textcolor(14,4); /* primeiro cor letra, segundo cor fundo */
    printf ("Meu primeiro programa em C e C++ \n\n"); 
    textcolor(15,1);
    printf ("Obrigado por ler \n\n");
    
    textcolor(0,15); /* Serve para colorir a mensagem do sistema */
	system ("pause");

    
}

3) Código do Devair1010 adaptado somente para colocar som e escrever texto, com esse exemplo, dar para ver o quão fácil é para colocar som nos programas feitos em C++

 

#include <iostream>
#include <windows.h>

int som(int toque){
    Beep(toque,150);

}
using namespace std;
int main (){
    int j;
    for(j=50;j<3000;j+=500)
        som(j);
    printf ("Meu primeiro programa em C e C++ \n\n");
    printf ("Obrigado por ler \n\n");
    system ("pause");
    return 0;
}

@LuisOPsum o seu segundo código não está funcionando, tive de remover algumas linhas para poder compilar, veja

#include <iostream>
 #include <windows.h>
using namespace std;
int main ()
{
//  HANDLE color=GetStdHandle(STR_OUTPUT_HANDLE);
    system("color 90");
//  SetconsoleTextAttribute(color,14);
    printf ("Meu primeiro programa em C e C++ \n");
    Sleep(1000);
//  SetconsoleTextAttribute(color,10);
    printf ("Obrigado por ler \n");
    system ("pause");
    return 0;
}

O texto depois de // é comentário, ele é ignorado pelo compilador, esse texto não compila

Quando eu tiro os // tá dando erros de compilação

 

 

Gostaria de saber se tem como meu programa abrir já com uma tela azul, sem precisar do programa ir preenchendo a cor azul. Obrigado.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Valter Caxias      para a tela já aparecer na cor azul , você pode usar esse comando :

system("color 15");

ou esse

int main (){
    int j;
    textcolor(0,1);
    system("cls");
    /*for(j=0;j<1999;j++)
        printf(" ");*/
    /*system("color 15");*/
    for(j=500;j<3000;j+=500)
        som(j);

no lugar desse , no código :

textcolor(0,1);
for(j=0;j<1999;j++)
    printf(" ");

o código do  @LuisOPsum   não estava compilando por que havia algumas letras no nome do comando que precisam ser em maiúsculas , então acertei isso e ele esta funcionando , mas  não está mudando a cor de fundo ,  então o código ficou assim  :

#include <iostream>
#include <windows.h>
using namespace std;
int main(){
    HANDLE color=GetStdHandle(STD_OUTPUT_HANDLE);
    system("color 15");
    SetConsoleTextAttribute(color,14);
    cout<<"Meu primeiro programa em C e C++ "<<endl;
    Sleep(1000);
    SetConsoleTextAttribute(color,10);
    cout<<"Obrigado por ler "<<endl;
    SetConsoleTextAttribute(color,15);
    system("pause");
    SetConsoleTextAttribute(color,7);
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Olá...

Perdão gente! Esqueci de preencher dentro do inteiro a janela.

#include <iostream>
#include <windows.h>

using namespace std;
int main (int argc, char *argv[]) {

HANDLE color = GetStdHandle(STD_OUTPUT_HANDLE);

system("color 90"); SetConsoleTextAttribute(color,14);

printf ("Meu primeiro programa em C e C++ \n");

Sleep(1000); 
SetConsoleTextAttribute(color,10);

printf ("Obrigado por ler \n"); 
system ("PAUSE");
return 0;
}

Agora pode compilar sem problema. Agora seguinte: talvez não funcione no compilador do celular"No meu não rodou" mas lhe garanto que no Dev-C++ 4.9.9.2 rodou. Acho que vai rodar nas outras versões também de boa.

Qualquer dúvida postai...

adicionado 46 minutos depois

Olá... Obrigado amigo... problema aqui foi mesmo na digitação. Pois eu sempre faço o codego no pc e depois testo no celular. Sempre em muitos casos o programa não roda devido ao suporte do compilador ser fraco.

Consertei o erro e pode testar que esta funcionado conforma o enunciado.

Obrigado e felicidades.☆☆☆☆☆

Janela.png

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Como você quer deixar uma só linha colorida tem que utilizar cores ascii da ara fazer isso com conio.h, rutil.h, windows.h ou com uma gambiarra do cmd que se faz utilizando system("A[BmTextoA[0m"); onde A é um caractere especial (tudo que é ascii no cmd tem que utilizar um caractere diferente) e B é o código de cor, dá para você achar uma tabela disso pesquisando cores no python (acredite em mim, funciona), para facilitar isso eu criei a biblioteca color.h, obs: utilize o zip da versão 1.1.0, postei ele em comentário, as outras versões estão inutilizaveis

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...