Ir ao conteúdo
  • Cadastre-se
Tiago Cavalcante Trindade

C++ Tutorial: como colocar cor no C++

Posts recomendados

Aqui vai uma biblioteca para colocar cor no terminal do c++:

// color.hpp

// author: Tiago Cavalcante Trindade
// version: 1.0.3
// email: tiagotrindade111@gmail
// access: https://www.clubedohardware.com.br/forums/topic/1396899-tutorial-como-colocar-cor-no-c/

#pragma once

#include <iostream>

using namespace std;

namespace style {
	enum FOREGROUND {
		fBLACK = 30, /* letra preta */
		fRED, /* letra vermelha */
		fGREEN, /* letra verde */
		fYELLOW, /* letra amarela */
		fBLUE, /* letra azul */
		fMAGENTA, /* letra magenta */
		fCYAN, /* letra ciano */
		fWHITE, /* letra branca */
		fBLACKs = 90, /* letra preta estrondosa */
		fREDs, /* letra vermelha estrondosa */
		fGREENs, /* letra verde estrondosa */
		fYELLOWs, /* letra amarela estrondosa */
		fBLUEs, /* letra azul estrondosa */
		fMAGENTAs, /* letra magenta estrondosa */
		fCYANs, /* letra ciana estrondosa */
		fWHITEs, /* letra branca estrondosa */
	};
	enum BACKGROUND {
		bBLACK = 40, /* fundo preto */
		bRED, /* fundo vermelho */
		bGREEN, /* fundo verde */
		bYELLOW, /* fundo amarelo */
		bBLUE, /* fundo azul */
		bMAGENTA, /* fundo magenta */
		bCYAN, /* fundo ciano */
		bWHITE, /* fundo branco */
		bBLACKs = 100, /* fundo preto estrondoso */
		bREDs, /* fundo vermelho estrondoso */
		bGREENs, /* fundo verde estrondoso */
		bYELLOWs, /* fundo amarelo estrondoso */
		bBLUEs, /* fundo azul estrondoso */
		bMAGENTAs, /* fundo magenta estrondoso */
		bCYANs, /* fundo ciano estrondoso */
		bWHITEs /* fundo branco estrondoso */
	};
	enum STYLE {
		sRESET = 0, /* estilo de letra padrão */
		sBOLD, /* cor da letra fica mais forte */
		sUNDERLINE = 4, /* sublinhado */
		sINVERSE = 7, /* inverte a cor do fundo com a cor da letra */
	};
}

namespace color {
	/*escreve um texto em determinada cor*/
	void coutc(const char* text, style::FOREGROUND foreground) {
		cout << "[" << foreground << "m" << text << "[0m";
	}
	/*escreve um texto com determinada cor de fundo*/
	void coutc(const char* text, style::BACKGROUND foreground) {
		cout << "[" << foreground << "m" << text << "[0m";
	}
	/*escreve um texto com determinada estilo*/
	void coutc(const char* text, style::STYLE style) {
		cout << "[" << style << "m" << text << "[0m";
	}
	/*escreve um texto em determinada cor e com determinada cor de fundo*/
	void coutc(const char* text, style::FOREGROUND foreground,  style::BACKGROUND background) {
		cout << "[" << foreground << "m[" << background << "m" << text << "[0m";
	}
	/*escreve um texto em determinada cor e com determinado estilo*/
	void coutc(const char* text, style::FOREGROUND foreground, style::STYLE style) {
		cout << "[" << foreground << "m[" << style << "m" << text << "[0m";
	}
	/*escreve um texto com determinada cor de fundo e com determinado estilo*/
	void coutc(const char* text, style::BACKGROUND background, style::STYLE style) {
		cout << "[" << background << "m[" << style << "m" << text << "[0m";
	}
	/*escreve um texto em determinada cor e com determinada cor de fundo e em determinado estilo*/
	void coutc(const char* text, style::FOREGROUND foreground, style::BACKGROUND background, style::STYLE style) {
		cout << "[" << foreground << "m[" << background << "m[" << style << "m" << text << "[0m";
	}
}

Aqui está um exemplo de como usar:

// exemplo.cpp

#include "color.hpp"

int main() {
	color::coutc("Teste", style::fRED);
	color::coutc("Teste", style::fGREENs, style::bWHITE);
	color::coutc("Teste", style::fBLUE, style::bBLACK, style::sUNDERLINE);
	return 0;
}

Aqui estão as cores da letra:

    fBLACK = letra preta
    fRED = letra vermelha
    fGREEN = letra verde
    fYELLOW = letra amarela

    fBLUE = letra azul
    fMAGENTA = letra magenta
    fCYAN = letra ciano
    fWHITE = letra branca
    fBLACKs = letra preta estrondosa
    fREDs = letra vermelha estrondosa
    fGREENs = letra verde estrondosa
    fYELLOWs = letra amarela estrondosa
    fBLUEs = letra azul estrondosa
    fMAGENTAs = letra magenta estrondosa
    fCYANs = letra ciana estrondosa
    fWHITEs = letra branca estrondosa

Aqui estão as cores para o fundo:

    bBLACK = fundo preto
    bRED = fundo vermelho
    bGREEN = fundo verde
    bYELLOW = fundo amarelo
    bBLUE = fundo azul
    bMAGENTA = fundo magenta
    bCYAN = fundo ciano
    bWHITE = fundo branco
    bBLACKs = fundo preto estrondoso
    bREDs = fundo vermelho estrondoso
    bGREENs = fundo verde estrondoso
    bYELLOWs = fundo amarelo estrondoso
    bBLUEs = fundo azul estrondoso
    bMAGENTAs = fundo magenta estrondoso
    bCYANs = fundo ciano estrondoso
    bWHITEs = fundo branco estrondoso

Aqui estão os estilos para letra:

    sRESET = estilo de letra padrão
    sBOLD = cor da letra fica mais forte
    sUNDERLINE = sublinhado
    sINVERSE = inverte a cor do fundo com a cor da letra

Aqui vai um programa para ver cada cor e estilo:

// como-são-todas-as-cores.cpp

#include "color.hpp"

using namespace color;
using namespace style;

int main() {
	cout << "fBLACK: ";
	coutc("text", fBLACK);
	cout << "\nfRED: ";
	coutc("text", fRED);
	cout << "\nfGREEN: ";
	coutc("text", fGREEN);
	cout << "\nfYELLOW: ";
	coutc("text", fYELLOW);
	cout << "\nfBLUE: ";
	coutc("text", fBLUE);
	cout << "\nfMAGENTA: ";
	coutc("text", fMAGENTA);
	cout << "\nfCYAN: ";
	coutc("text", fCYAN);
	cout << "\nfWHITE: ";
	coutc("text", fWHITE);
	cout << "\nfBLACKs: ";
	coutc("text", fBLACKs);
	cout << "\nfREDs: ";
	coutc("text", fREDs);
	cout << "\nfGREENs: ";
	coutc("text", fGREENs);
	cout << "\nfYELLOWs: ";
	coutc("text", fYELLOWs);
	cout << "\nfBLUEs: ";
	coutc("text", fBLUEs);
	cout << "\nfMAGENTAs: ";
	coutc("text", fMAGENTAs);
	cout << "\nfCYANs: ";
	coutc("text", fCYANs);
	cout << "\nfWHITEs: ";
	coutc("text", fWHITEs);
	cout << "\nbBLACK: ";
	coutc("text", bBLACK);
	cout << "\nbRED: ";
	coutc("text", bRED);
	cout << "\nbGREEN: ";
	coutc("text", bGREEN);
	cout << "\nbYELLOW: ";
	coutc("text", bYELLOW);
	cout << "\nbBLUE: ";
	coutc("text", bBLUE);
	cout << "\nbMAGENTA: ";
	coutc("text", bMAGENTA);
	cout << "\nbCYAN: ";
	coutc("text", bCYAN);
	cout << "\nbWHITE: ";
	coutc("text", bWHITE);
	cout << "\nbBLACKs: ";
	coutc("text", bBLACKs);
	cout << "\nbREDs: ";
	coutc("text", bREDs);
	cout << "\nbGREENs: ";
	coutc("text", bGREENs);
	cout << "\nbYELLOWs: ";
	coutc("text", bYELLOWs);
	cout << "\nbBLUEs: ";
	coutc("text", bBLUEs);
	cout << "\nbMAGENTAs: ";
	coutc("text", bMAGENTAs);
	cout << "\nbCYANs: ";
	coutc("text", bCYANs);
	cout << "\nbWHITEs: ";
	coutc("text", bWHITEs);
	cout << "\nsReset: ";
	coutc("text", sRESET);
	cout << "\nsBOLD: ";
	coutc("text", sBOLD);
	cout << "\nsUNDERLINE: ";
	coutc("text", sUNDERLINE);
	cout << "\nsINVERSE: ";
	coutc("text", sINVERSE);
	return 0;
}

Por favor, se encontrarem um erro ou acharem que dá para melhorar algo avisem.

Atenção: caso você copie e cole o color.h o caractere contido em char.txt deve ser adicionado antes de todos os "["

Segue anexos os arquivos char.txt e color.zip.

color.zip é um arquivo com a biblioteca color.h, um programa de exemplo e outro que mostra como são todas as cores. 

char.txt

 

color 1.0.3.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Tiago Cavalcante Trindade       qual caractere de qual biblioteca ?  muito bom seu código , parece que você pesquisou bastante ,  e para aprendizado é muito bom , ainda não havia visto esses comandos em lugar algum , mas não consegui colocar os códigos do jeito certo e eles não funcionaram ,   e pesquisando vi essa função

 

#include <stdio.h>
#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_2 (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));
}
int main(){
    textcolor_2(14,9);
    printf("Qualquer Coisa !\n\n\n");
    return 0;  
}

 

que é usada na na biblioteca conio2 , ou se não tiver a conio2 instalada funciona também , basta colocar a biblioteca #include <windows.h>  .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

color.h não utiliza nenhuma biblioteca de cores, é que o cmd aceita caracteres ascii e o código [032m, [033m, ... são cores ascii, só que, como outros caracteres ascii o de cor tem que mudar um pouco por isso tem um caractere especial antes.

2 horas atrás, devair1010 disse:

@Tiago Cavalcante Trindade       qual caractere de qual biblioteca ?  muito bom seu código , parece que você pesquisou bastante ,  e para aprendizado é muito bom , ainda não havia visto esses comandos em lugar algum , mas não consegui colocar os códigos do jeito certo e eles não funcionaram ,   e pesquisando vi essa função

 


#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_2 (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));
}

 

que é usada na na biblioteca conio2 , ou se não tiver a conio2 instalada funciona também , basta colocar a biblioteca #include <windows.h>  .

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso aqui a RLUTIL, é bem simples de usar apenas um arquivo .h, ela é usada para criar jogos de texto em modo console mas aparentemente  é um sucessor espiritual da antiga conio2.h. Tem todos os recursos e mais alguns e funciona em C e C++.

 

https://github.com/tapio/rlutil

 

Exemplo de um programinha pra mover um "personagem" sem aquele lag de input.

#include <iostream>
#include "rlutil.h"

int main()
{
    int x = 5;
    int y = 5;

    rlutil::hidecursor();
    rlutil::cls();
    rlutil::locate(x,y); std::cout << '@' << std::endl;

    while (true)
    {
        if (kbhit())
        {
            char k = getch();
            rlutil::locate(x,y); std::cout << " ";
            if (k == 'a') --x;
            else if (k == 'd') ++x;
            else if (k == 'w') --y;
            else if (k == 's') ++y;
            else if (k == ' ') break;
            rlutil::locate(x,y); std::cout << '@';
        }

        std::cout.flush();
    }

    rlutil::showcursor();

    return 0;
}

Outros exemplo de cor e jogos.

 

cmd1.png.1d50cc8c5b3c713be87fae39ccb1c6ae.png

 

cmd2.png.8fdd10498325de7c0a98b717b6469ba0.png

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu resolvi adiantar a 1.1.0 porque vi que tinha errado na 1.0.5, eu utilizei cout, mas, o correto é system, cout não funciona, no meu depurador funcionou, mas, quando testei no cmd, não funcionou, daqui a no máximo 5 dias eu solto a 2.0.0 que vai ter os recursos que eu planejei color 1.1.0.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um cara no youtube que criou uma biblioteca para criar jogos usando o console do windows, só que ele meio que elevou o nível da coisa hehe. Você que esta estudando pra criar um framework próprio pode ser interessante dar uma olhada. Deve ter as funções ou algo parecido com o que você procura.

 

https://github.com/OneLoneCoder/videos/blob/master/olcConsoleGameEngine.h

 

Alguns jogos que ele ensinou com o framework

 

RPG

 

FPS

 

Plataforma

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Benjamin Breeg Essa biblioteca realmente elevou um pouquinho o nível da coisa (a directx ficaria com inveja hehe), vou dar uma estudada nessa biblioteca.

adicionado 12 minutos depois
10 horas atrás, Tiago Cavalcante Trindade disse:

Eu resolvi adiantar a 1.1.0 porque vi que tinha errado na 1.0.5, eu utilizei cout, mas, o correto é system, cout não funciona, no meu depurador funcionou, mas, quando testei no cmd, não funcionou, daqui a no máximo 5 dias eu solto a 2.0.0 que vai ter os recursos que eu planejei color 1.1.0.zip

Eu disse que cout não funciona... erro meu cout funciona, mas tem que colocar \033 antes do ansi (antes eu disse ascii, mas eu errei) não um caractere especial.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está a versão 2.0.0, no manual de referência estão as mudanças da versão 1.1.0, esta versão não é compatível com o cmd, daqui a 1 ou 2 dias eu lanço a versão para o cmd. O comando color() é incompatível com o Linux, daqui a uns 3 ou 4 dias lanço uma versão só para ele.

color 2.0.0.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/09/2019 às 23:13, Tiago Cavalcante Trindade disse:

@Benjamin Breeg Essa biblioteca realmente elevou um pouquinho o nível da coisa (a directx ficaria com inveja hehe), vou dar uma estudada nessa biblioteca.

adicionado 12 minutos depois

Eu disse que cout não funciona... erro meu cout funciona, mas tem que colocar \033 antes do ansi (antes eu disse ascii, mas eu errei) não um caractere especial.

Ah cout não funciona mesmo, tentei de tudo. Acabou passando porque no Depurador do Visual Studio cout funciona.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/09/2019 às 12:19, Tiago Cavalcante Trindade disse:

como outros caracteres ascii o de cor tem que mudar um pouco por isso tem um caractere especial antes

 

Não entendi o que significa

 

Em 14/09/2019 às 23:13, Tiago Cavalcante Trindade disse:

mas tem que colocar \033 antes do ansi (antes eu disse ascii, mas eu errei) não um caractere especial

 

Esse é o código do ESCAPE, 27. 

 

Uma referência histórica: esses códigos são baseados em emular, simular um terminal de computador, nos tempos em que os computadores passaram a ter terminais. Em geral no Unix/Linux esses são os códigos referentes a terminais da marca DIGITAL, em geral do modelo VT-100. Mas em alguns casos se pode selecionar VT-52 ou VT-220.  O que acontece é que o terminal interpreta esses códigos antes de mostrar seja lá o que for na tela. O terminal Unix...

 

Esse é um VT-100. Veja em https://pt.wikipedia.org/wiki/VT100 mais informação

385057899_DECVT-100.png.acc157347423d632dfe49d09bb2e029a.png

 

No caso do Windows a ideia sempre foi diferente e se usa uma uma API, chamadas de função. No entanto recentemente isso começou a mudar e o windows passou a operar com essa mesma filosofia em alguns casos. Isso é um pesadelo. Mas se você usa Windows 10 a partir da edição de aniversário eu acho, pode ter grande sucesso com essas funções e ter seu programa de "console" funcionando igualzinho no Windows e no Unix/Linux/Mac.

 

Essa ferramenta da Microsoft por exemplo pode te interessar https://github.com/microsoft/terminal/releases/tag/1904.29002. Tem tudo a ver com o que está escrevendo. O código fonte está incluído e os caras que escrevem são muito muito bons. A ideia é que você pode criar e salvar esquemas de cores como se faz com a interface gráficas impressoras, o display e tal...

Veja uma tela abaixo. Isso é de 2019!

ColorTool.png.4b461f4779d91c686042b47ab662f724.png

Tem um blog da Microsoft que vem divulgando a evolucão dessas coisas e tem a ver com o WSL, subsistema do windows para Linux.

 

A bíblia disso está aqui Guia de instalação do subsistema do Windows para Linux para Windows 10

 

Por outro lado, essa é a referência para Windows sobre o desenvolvimento dessas coisas https://docs.microsoft.com/pt-br/windows/console/console-reference. Infelizmente ainda não está disponível em português

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 19/09/2019 às 00:27, arfneto disse:

 

Não entendi o que significa

 

 

Esse é o código do ESCAPE, 27. 

 

Uma referência histórica: esses códigos são baseados em emular, simular um terminal de computador, nos tempos em que os computadores passaram a ter terminais. Em geral no Unix/Linux esses são os códigos referentes a terminais da marca DIGITAL, em geral do modelo VT-100. Mas em alguns casos se pode selecionar VT-52 ou VT-220.  O que acontece é que o terminal interpreta esses códigos antes de mostrar seja lá o que for na tela. O terminal Unix...

 

Esse é um VT-100. Veja em https://pt.wikipedia.org/wiki/VT100 mais informação

385057899_DECVT-100.png.acc157347423d632dfe49d09bb2e029a.png

 

No caso do Windows a ideia sempre foi diferente e se usa uma uma API, chamadas de função. No entanto recentemente isso começou a mudar e o windows passou a operar com essa mesma filosofia em alguns casos. Isso é um pesadelo. Mas se você usa Windows 10 a partir da edição de aniversário eu acho, pode ter grande sucesso com essas funções e ter seu programa de "console" funcionando igualzinho no Windows e no Unix/Linux/Mac.

 

Essa ferramenta da Microsoft por exemplo pode te interessar https://github.com/microsoft/terminal/releases/tag/1904.29002. Tem tudo a ver com o que está escrevendo. O código fonte está incluído e os caras que escrevem são muito muito bons. A ideia é que você pode criar e salvar esquemas de cores como se faz com a interface gráficas impressoras, o display e tal...

Veja uma tela abaixo. Isso é de 2019!

ColorTool.png.4b461f4779d91c686042b47ab662f724.png

Tem um blog da Microsoft que vem divulgando a evolucão dessas coisas e tem a ver com o WSL, subsistema do windows para Linux.

 

A bíblia disso está aqui Guia de instalação do subsistema do Windows para Linux para Windows 10

 

Por outro lado, essa é a referência para Windows sobre o desenvolvimento dessas coisas https://docs.microsoft.com/pt-br/windows/console/console-reference. Infelizmente ainda não está disponível em português

 

 

 

Toda letra acentuada em um arquivo cpp (caso não seja colocado em ascii) fica estranha no cmd, caracteres estranhos aparecem no lugar da letra, caracteres especiais cmd.zip mostra quais letras devem ser substituídas por quais caracteres para elas aparecerem certas no cmd.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Tiago Cavalcante Trindade disse:

Toda letra acentuada em um arquivo cpp (caso não seja colocado em ascii) fica estranha no cmd, caracteres estranhos aparecem no lugar da letra, caracteres especiais cmd.zip mostra quais letras devem ser substituídas por quais caracteres para elas aparecerem certas no cmd.

adicionado 1 minuto depois

Saiu a color.h 2.0.0 (Windows)

color 2.0.0 (Windows).zip 47 kB · 0 downloads

 

Chegou  a ler o que eu expliquei?

 

Esse lance das letras é um pesadelo, em especial se você não usa Windows 10. Esses códigos que usa são baseados na emulação de um terminal DEC VT-100 e você pode encontrar isso no manual do próprio, ou no manual do xterm. Os comandos em geral começam por ESCAPE como você deve ter visto. octal 33, decimal 27.  ESC depois [ depois algo selecionam modo de video, endereçam o cursor, mudam a cor e tal. E esses caracteres são interpretados antes de ir para a tela. Isso funciona bem no Unix e derivados mas no Windows sempre foi um inferno. E também tem a questão das fontes e da página de código e dos caracteres multi-byte... 

Como eu disse, a partir da edição de aniversário do windows 10 e da criação do WSL --- o subsistema linux --- isso ficou muito melhor. E agora o Windows tem uma coisa chamada Pseudo-console que permite interpretar melhor esses caracteres VT-coisas

 

Citação

Devido à Console API a console do Windows tinha pouca necessidade de suportar comandos ANSI/VT que oferecem similares funções em outras plataformas. De fato --- até o Windows 10 --- a console do Windows implementava apenas um absoluto mínimo suporte para essas sequências

 

Citado em https://devblogs.microsoft.com/commandline/windows-command-line-inside-the-windows-console/ em 20/Julho/2018

 

Veja essa imagem da mesma fonte mostrando uma mesma tela de uma aplicação de console no Windows 7 e no Windows 10

ch-190919-windowsConsole.png.6709c22a68a75e1d4b1a1096375a97cd.png

 

Não sei de sua familiaridade ou necessidade de tratar essas coisas, mas há grandes problemas em usar aplicativos de console feitos para rodar nesses terminais --- consoles --- usando bibliotecas como curses ou ncurses ou sei lá, mas no windows. Basta ver aquela tela acima... E ver que desde 2014 isso está sendo reescrito pela microsoft...

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, arfneto disse:

 

Chegou  a ler o que eu expliquei?

 

Esse lance das letras é um pesadelo, em especial se você não usa Windows 10. Esses códigos que usa são baseados na emulação de um terminal DEC VT-100 e você pode encontrar isso no manual do próprio, ou no manual do xterm. Os comandos em geral começam por ESCAPE como você deve ter visto. octal 33, decimal 27.  ESC depois [ depois algo selecionam modo de video, endereçam o cursor, mudam a cor e tal. E esses caracteres são interpretados antes de ir para a tela. Isso funciona bem no Unix e derivados mas no Windows sempre foi um inferno. E também tem a questão das fontes e da página de código e dos caracteres multi-byte... 

Como eu disse, a partir da edição de aniversário do windows 10 e da criação do WSL --- o subsistema linux --- isso ficou muito melhor. E agora o Windows tem uma coisa chamada Pseudo-console que permite interpretar melhor esses caracteres VT-coisas

 

 

Citado em https://devblogs.microsoft.com/commandline/windows-command-line-inside-the-windows-console/ em 20/Julho/2018

 

Veja essa imagem da mesma fonte mostrando uma mesma tela de uma aplicação de console no Windows 7 e no Windows 10

ch-190919-windowsConsole.png.6709c22a68a75e1d4b1a1096375a97cd.png

 

Não sei de sua familiaridade ou necessidade de tratar essas coisas, mas há grandes problemas em usar aplicativos de console feitos para rodar nesses terminais --- consoles --- usando bibliotecas como curses ou ncurses ou sei lá, mas no windows. Basta ver aquela tela acima... E ver que desde 2014 isso está sendo reescrito pela microsoft...

 

Ah, eu disse cpp, mas bat também.

Eu li o que você me indicou, mas, antes da atualização de março e nos Windows anteriores era com essa tabela que se colocava acentuação em arquivos bat, hoje se utiliza chcp.

adicionado 3 minutos depois

Saiu a color.h 2.0.0 (Windows).

color 2.0.0 (Windows).zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...