1
resposta

[Dúvida] Dívida execução código

Utilizo Windows na máquina e no início do curso instalei o MinGW e fiz as configurações nas variáveis de ambiente.

No entanto, na hora de executar o código, mesmo utilizando a biblioteca #include <locale.h> e no main informando o setlocale(LC_ALL, "Portuguese");, quando executo as palavras com acento que estão dentro de printf estão saindo desconfiguradas.

Envio código abaixo:

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

char palavrasecreta[20];
char chutes[26];
int tentativas = 0;

void abertura() {
    printf("/****************/\n");
    printf("/ Jogo de Forca */\n");
    printf("/****************/\n\n");
}

void chuta() {

    char chute;
    printf("Qual letra? ");
    scanf(" %c", &chute);

    chutes[tentativas] = chute;
}


int jachutou(char letra) {
    int achou = 0;
    for(int j = 0; j < tentativas; j++) {
        if(chutes[j] == letra) {
            achou = 1;
            break;
        }
    }

    return achou;
}


void desenhaforca() {

    
    printf("Você já deu %d chutes\n", tentativas);

    for(int i = 0; i < strlen(palavrasecreta); i++) {

        if(jachutou(palavrasecreta[i])) {
            printf("%c ", palavrasecreta[i]);
        } else {
            printf("_ ");
        }

    }
    printf("\n");

}


void escolhepalavra() {
    sprintf(palavrasecreta, "MELANCIA");
}

int main() {

    setlocale(LC_ALL, "Portuguese");
    
    int acertou = 0;
    int enforcou = 0;

    abertura();
    escolhepalavra();

    do {

        
        desenhaforca();
        chuta();

        tentativas++;

    } while (!acertou && !enforcou);

}
1 resposta

Olá Alana! Tudo bem?

Isso é uma questão comum quando se trabalha com diferentes configurações de codificação de caracteres. Aqui estão algumas sugestões que podem ajudar a resolver o problema:

  1. Certifique-se de que o console do Windows está configurado para usar a codificação correta: O console do Windows usa geralmente a página de código 850 ou 437, que não suporta caracteres acentuados de forma adequada. Você pode tentar mudar para a página de código 65001, que é UTF-8, executando o seguinte comando no prompt de comando antes de executar seu programa:

    chcp 65001
    
  2. Verifique a codificação do arquivo-fonte: Certifique-se de que o arquivo-fonte do seu código está salvo com a codificação UTF-8. Alguns editores de texto permitem que você escolha a codificação ao salvar o arquivo.

  3. Teste com outra IDE ou editor: Se o problema persistir, tente usar outra IDE ou editor de texto que suporte melhor a codificação UTF-8, como o Visual Studio Code, que pode lidar com diferentes codificações de forma mais eficaz.

Espero que essas dicas ajudem a resolver o problema com a exibição de caracteres acentuados.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.