Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Acentuação

Quando escrevo o código em C as palavras não aparecem acentuadas no prompt. Gostaria de saber de que forma poderia resolver o problema. Obrigado.

11 respostas

Carlos, para que isso ocorra corretamente, precisa conferir se o seu arquivo de código está salvo com a mesma codificação de texto que seu terminal está configurado para executar.

Eu em geral utilizo tudo na codificação UTF-8. Como essa configuração do terminal é dependente do sistema, não posso te ajudar com as especificidades. Salve seu código em UTF-8 e altere a codificação de exibição do seu terminal para a mesma, que deve resolver seu problema.

Qualquer coisa, volte aqui e diga que sistema operacional e editor de texto você está usando!

    # include <stdio.h>
    # include <conio.h>
    # include <locale.h>
int main(){

setlocale(LC_ALL, "Portuguese");

printf("Você acertou!");

system("pause");
}

Coloque as duas bibliotecas conio.h e locale. e dentro da main, antes de declarar qualquer variável ou pedir para imprimir algo na tela coloque setlocale(LC_ALL, "Portuguese"); e prossiga com o seu código. Faça o teste e se der certo avise! Atenciosamente, Regianne Martins

Obrigado pelas colaborações, Marco e Regianne. Infelizmente nenhuma das soluções funcionou.

Tenho Windows e também tive problema com acentuação. Como funciona esses include?

A Regiane esqueceu de utilizar a formatação de código. Aqui vai o código formatado:

#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main() {
  setlocale(LC_ALL, "Portuguese");
  printf("A Á Â Ã Ä - E É Ê Ë - I Í Î Ï - O Ó Ô Õ Ö - U Ú Û Ü\n");
  printf("a á â ã ä - e é ê ë - i í î ï - o ó ô õ ö - u ú û ü\n");
  system("pause");
}
solução

Obrigada.

Descobri o problema, tem que ver o encoding que está sendo salvo o arquivo. Funcionou depois que eu mudei o Save Encoding do Sublime para Western (Windows 1252)

No código

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

int main() {
    setlocale(LC_ALL, "portuguese");
    printf("***************************************\n");
    printf("*Bem vindo ao nosso jogo de adivinhação*\n");
    printf("***************************************\n");
}

Esse link me ajudou:

http://pt.stackoverflow.com/questions/112263/como-resolver-problemas-de-acentua%C3%A7%C3%A3o-ao-usar-a-fun%C3%A7%C3%A3o-setlocale

Legal! Vou manter isso em mente.

Carlos, veja se alguma das novas respostas te ajuda e, caso sim, marque como solução do tópico =)

Também estou com o mesmo problema, nenhuma das soluções funcionaram, o meu teclado é dos EUA, pode ser isso a causa do problema?

O teclado não faz diferença nenhuma, Luciano. Você usa Windows? Com PowerShell ou Prompt?

Eu estava usando o prompt,mas agora deu certo, eu não tinha visto a dica da Gisele de mudar o encoding pra Western no Sublime, mudando isso já deu certo. Obrigado pessoal!

Tentei de tudo e não consegui... não sei mais o q fazer

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software