Caracteres especiais em C
Olá, tudo bem?
Estou iniciando agora no mundo da programação, lendo um pouco aqui e um pouco ali...
Hoje me deparei com um problema, no exercício básico de Olá Mundo!
o caractere "á" não estava aparecendo quando rodava o programa, procurei algumas soluções na internet e encontrei o #include<locale.h> e ficou assim:
Porém não funcionou, Coloquei (LC_SLL, ""), com aspas vazias, troquei o Portuguese por portuguese, pt-br, portuguese-brazilian, etc... e nada deu certo.
Em outro site encontrei um jeito diferente e ficou assim:
Desse jeito deu certo, o cmd reproduziu o "á" do Olá Mundo!
Porém, não encontrei nada sobre o porque dessa maneira funciona, alguém sabe me explicar o por que?
Acho que minha dúvida, também pode ser a de outro, e essa maneira de reproduzir os caracteres especiais também pode ajudar alguém
Obs: Estou usando o Visual Studio Code, com as extensões para C/C++
Muito obrigado!
Estou iniciando agora no mundo da programação, lendo um pouco aqui e um pouco ali...
Hoje me deparei com um problema, no exercício básico de Olá Mundo!
o caractere "á" não estava aparecendo quando rodava o programa, procurei algumas soluções na internet e encontrei o #include<locale.h> e ficou assim:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main ()
{
setlocale(LC_ALL, "Portuguese");
printf ("Olá Mundo! \\\\\\\\n");
system ("pause");
return 0;
}
Porém não funcionou, Coloquei (LC_SLL, ""), com aspas vazias, troquei o Portuguese por portuguese, pt-br, portuguese-brazilian, etc... e nada deu certo.
Em outro site encontrei um jeito diferente e ficou assim:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main ()
{
UINT CPAGE_UTF8 = 65001;
UINT CPAGE_DEFAULT = GetConsoleOutputCP();
SetConsoleOutputCP(CPAGE_UTF8);
printf ("Olá Mundo! \\\\\\\\n");
system ("pause");
return 0;
}
Desse jeito deu certo, o cmd reproduziu o "á" do Olá Mundo!
Porém, não encontrei nada sobre o porque dessa maneira funciona, alguém sabe me explicar o por que?
Acho que minha dúvida, também pode ser a de outro, e essa maneira de reproduzir os caracteres especiais também pode ajudar alguém
Obs: Estou usando o Visual Studio Code, com as extensões para C/C++
Muito obrigado!
Guilherme Gois
Curtidas 0
Respostas
Guilherme Gois
26/08/2019
Obs: No meu código, não coloquei aquele monte de \\\\\\\\\\
GOSTEI 0