Caracteres especiais em C
26/08/2019
0
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
Curtir tópico
+ 0
Responder
Posts
26/08/2019
Guilherme Gois
Obs: No meu código, não coloquei aquele monte de \\\\\\\\\\
Responder
Clique aqui para fazer login e interagir na Comunidade :)