1
resposta

Erro de acentuação em português

Olá, eu coloquei a função setlocale para português porém continua aparecendo os erros de acentuação. Gostaria de uma ajuda com esse código. Acho que seria interessante acrescentar ao curso uma aula explicando isso aos usuários do windows. Segue código em C:

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

int main() {

    setlocale(LC_ALL, "Portuguese");

    // imprime cabeçalho do nosso jogo
    printf("******************************************\n");
    printf("* Bem-vindo ao nosso jogo de adivinhação *\n");
    printf("******************************************\n");

    int numerosecreto = 42;

    int chute;

    printf("Qual o seu chute? ");
    scanf("%d", &chute); // scanf precisa do & para indicar onde guardar
    printf("Seu chute foi %d\n", chute);

    if(chute == numerosecreto){
        printf("Parabéns! Você acertou!\n");
    } else {
        printf("Você errou.\nMas não desanime, tente de novo!");
    }

    system("pause");
    return 0;
}
1 resposta

Olá, Júlia! Tudo bem?

Desculpe pela demora em obter retorno.

O problema de acentuação que você está enfrentando pode estar relacionado ao fato de que a função setlocale não está funcionando corretamente no Windows. Isso ocorre porque o Windows não suporta a configuração de localização diretamente no código.

Uma alternativa para resolver esse problema é utilizar a função _setmode da biblioteca io.h para alterar o modo de exibição do console para suportar caracteres acentuados. Você pode fazer isso da seguinte forma:

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

int main() {
    _setmode(_fileno(stdout), _O_U16TEXT); // Altera o modo de exibição do console

    // Resto do código...

    return 0;
}

Essa função irá alterar o modo de exibição do console para suportar caracteres Unicode, permitindo que os caracteres acentuados sejam exibidos corretamente.

Experimente adicionar essa linha de código antes do seu código atual e veja se resolve o problema de acentuação. Caso consiga resolver, sinalize aqui por favor, para que acrescentemos a atividade no curso, conforme você sugeriu.

Espero ter ajudado e bons estudos!