Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Sugestão] Corrigindo formatação de texto para sistemas Windows (UTF-8)

Na aula de primeiro programa, ao realizar a primeira compilação já com #include <iostream>, quem utiliza ambiente Windows pode se deparar com caracteres mal formados. Isso se dá devido ao Encoding Output do terminal, onde o Windows não entende logo de cara que precisa realizar o output para UTF-8 em alguns casos.

Por exemplo, o código abaixo, irá gerar uma saída mal formada devido à acentuação de caracteres:

#include <iostream> // Input & Output Stream

int main (){

    std::cout << "***************************************" << std::endl;
    std::cout << "** Bem-vindo ao jogo da adivinhação! **" << std::endl;
    std::cout << "***************************************" << std::endl;

};

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Para corrigir isso, e manter a legibilidade entre plataformas (Windows, Linux, etc), é relativamente simples:

Podemos adicionar um ifdef (if defined), verificando se o sistema executando é Windows,

#include <iostream> // Input & Output Stream

// Para usar a função SetConsoleOutputCP, se estiver usando o Windows (Funciona para arquiteturas 32-bits e 64-bits
#ifdef _WIN32
    #include <windows.h> 
#endif

int main (){

    // Configura o terminal em UTF-8 se estiver usando o Windows
    #ifdef _WIN32
        SetConsoleOutputCP(CP_UTF8);
    #endif

    std::cout << "***************************************" << std::endl;
    std::cout << "** Bem-vindo ao jogo da adivinhação! **" << std::endl;
    std::cout << "***************************************" << std::endl;

};

Com isso, resolvemos o problema de encoding de nosso código nos terminais windows, sem perder a compatibilidade com sistemas Linux e outros:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade