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)
13
respostas

Acentuação.

Olá, bom dia.

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

Como resolver?

13 respostas

Boa tarde, você já tentou usar essa função?

setlocale(LC_ALL, "Portuguese");
#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_ALL, "Portuguese");
    printf("Bem-vindo ao nosso jogo de adivinhação");
}

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

Então testei aqui e apresentou o mesmo comportamento, consegui imprimir no console da forma correta assim:

int main() {

    wprintf(L"Bem-vindo ao nosso jogo de adivinhação\n");
    system("pause");

    return 0;
}

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

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

solução!

Desculpa, copiei o código errado, poderia tentar assim na sua Maquina?

int main() {

    setlocale(LC_ALL, "");
    wprintf(L"Bem-vindo ao nosso jogo de adivinhação\n");
    system("pause");

    return 0;
}

@VICTOR WESLEY PAVIA VERDOODT done.

Agora me explica...

rs..

Pelo que eu entendi, o console do Windows por padrão não suporta a codificação de alguns caracteres teoricamente o setlocale era pra resolver isso, e creio que o caractere Ç, tem uma codificação maior que a padrão de um caractere convencional, no caso usando widestring, você pode usar esse tipo de caracteres. talvez exista outra forma de se chegar no mesmo resultado algum SetConsoleOutputCP, que colocaria a codificação certa no console.

https://en.wikipedia.org/wiki/Wide_character

Certo, agora me explica, nesta função como eu coloco?

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int somar(){
    return 1 + 2.15;
}
int main(){
    int resultado = 0;
    resultado = somar();
    printf("O resultado da função é = %d", resultado);
    return(0);
}
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int somar(){
    return 1 + 2.15;
}
int main(){
    setlocale(LC_ALL, "");
    int resultado = 0;
    resultado = somar();
    wprintf(L"O resultado da função é = %d\n", resultado);
    system("PAUSE");
    return(0);
}

Certo, vi que incluiu o L e o "pause", rs. sem querer estender pode explicar?

O pause é só pro console não fechar na minha maquina após a execução do código kkk, o L é pra dizer que essa string é uma widestring

Vlw Victor <3 te amo