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

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