Ir ao conteúdo

caractere "ã" em C não existe? por favor, ajuda!!


peanutbutter

Posts recomendados

Postado

olá pessoal.

estou começando a programar em C por conta própria (via livro), já estudo computação.

enfim, eu tenho Windows 8 e o Visual Studio 2012. compilo programas simples em C (só printf e \n \t etc por enquanto) e estou parado pelo seguinte motivo: o caractere "ã" parece não estar presente na tabela ASCII que compilei no programa (?) nem na que está no site oficial da tabela (?). tem TODOS caracteres menos "ã".

em compensação, no PC da escola já consegui compilar direitinho o caractere (no mesmo CMD).

já tentei de várias maneiras:

-como compilei no PC da escola:

decimal

printf("%c",196);

ou hexa

printf("\xC6");

no meu computador, isso é correspondente a um caractere completamente diferente (quando executo o MESMO código), e quando compilo a tabela ASCII extendida, o "ã" ao menos aparece nas referências.

alguém pode me dar uma luz sobre isso?

muito obrigado.

Postado

Segue lista com caracteres ASCII.

Á= 181

É= 144

Í= 214

Ó= 224

Ú= 233

á = 160

é = 130

í = 161

ó = 162

ú = 163

à = 133

À= 183

Ã= 199

Õ= 229

ã= 198

õ= 228

ç= 135

Ç= 128

Ê= 210

Ô= 226

ê = 136

ô = 147

No seu caso, o "ã" corresponde ao nº 198 na tabela ASCII.

Espero ter ajudado.

Postado

O caractere em questão deve estar presente F5Rua4D.gif.

Este código mostra o número do "ã" na tabela ASCII:


unsigned char Letra = 'ã';
printf("Na tabela ASCII: %d.\n", Letra);

Porém, na exibição de uma string que o contém, o caractere "ã" pode ser substituído por outro. Para resolver isso, há a função CharToOem da Windows API.

Espero ter ajudado GbhmuXl.gif.

Postado
Segue lista com caracteres ASCII.

Á= 181

É= 144

Í= 214

Ó= 224

Ú= 233

á = 160

é = 130

í = 161

ó = 162

ú = 163

à = 133

À= 183

Ã= 199

Õ= 229

ã= 198

õ= 228

ç= 135

Ç= 128

Ê= 210

Ô= 226

ê = 136

ô = 147

No seu caso, o "ã" corresponde ao nº 198 na tabela ASCII.

Espero ter ajudado.

pois é amigo, foi o que eu falei ali em cima: 198, aqui, corresponde a um caractere completamente diferente! o ã simplesmente não existe na tabela que construi (padrão/extendida).

O caractere em questão deve estar presente F5Rua4D.gif.

Este código mostra o número do "ã" na tabela ASCII:


unsigned char Letra = 'ã';
printf("Na tabela ASCII: %d.\n", Letra);

Porém, na exibição de uma string que o contém, o caractere "ã" pode ser substituído por outro. Para resolver isso, há a função CharToOem da Windows API.

Espero ter ajudado GbhmuXl.gif.

ele gerou um número 163, aí printei o "%c",163 e me saiu um ú (?)

estou completamente confuso até porque no site da tabela http://www.asciitable.com/ não há "ã"

de qualquer maneira, grato pela ajuda!

Postado
pois é amigo, foi o que eu falei ali em cima: 198, aqui, corresponde a um caractere completamente diferente! o ã simplesmente não existe na tabela que construi (padrão/extendida).

ele gerou um número 163, aí printei o "%c",163 e me saiu um ú (?)

estou completamente confuso até porque no site da tabela http://www.asciitable.com/ não há "ã"

de qualquer maneira, grato pela ajuda!

Sendo assim, aplique o CharToOem F5Rua4D.gif:


#include <stdio.h>
#include <windows.h>



int main(void)
{
unsigned char Letra[] = "ã";
puts("Sem o CharToOem:");
puts(Letra);
puts("Com o CharToOem:");
CharToOem(Letra, Letra);
puts(Letra);
getchar();
return 0;
}

Espero ter ajudado GbhmuXl.gif.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...