Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: adan-2994 en 1 Diciembre 2011, 18:15 pm



Título: Ayuda en C++ vocales con acento
Publicado por: adan-2994 en 1 Diciembre 2011, 18:15 pm
Saludos comunidad,
mi problema es el siguiente
en C++,

 
Código
  1. char letra;
  2.            cout<<"Introduce vocal acentuada:"<<endl;
  3.           cin>>letra;
  4.           cout<<letra;
  5.  
  6.           if(letra=='á'){
  7.                          cout<<"  Vocal acertada  ";
  8.                          }
           
Entonces, escribo una letra y luego la comparo para ver si es la q escribi
pero no me da con letras acentuadas como la á
(si pusiera if letra=='a' e indtroduzco la a si funcionaria)

Entonces ? cual sera mi problema  :-\ :-\
x tienen de especial las vocales?
o existe otra manera de compararlas ?



PD:
investigue el codigo ascci de la letra 'á' al parecer es 160 y lo comparo de esta manera

Código
  1. char letra=160;
  2.            cout<<letra<<endl;
  3.  
  4.           if(letra==160)
  5.           {
  6.                         cout<<"Vocal acertada";
  7.                         }

Ni aun asi me da TRUE
jaj que es lo que pasara?


         


Título: Re: Ayuda en C++ vocales con acento
Publicado por: Eternal Idol en 1 Diciembre 2011, 19:35 pm
Código
  1. if ((unsigned char)letra == 160)

Igual tendrias que buscar algo para comparar con el locale o usar Unicode mejor.


Título: Re: Ayuda en C++ vocales con acento
Publicado por: adan-2994 en 1 Diciembre 2011, 22:31 pm
Muchas gracias amigo, resolvi el problema con tu respuesta
me puedes explikar xq tuve q poner (unsigned char) ?


Título: Re: Ayuda en C++ vocales con acento
Publicado por: Eternal Idol en 1 Diciembre 2011, 22:48 pm
Un char ocupa - casi siempre - un byte, con signo su rango va de -128 a 127 (160 esta obviamente fuera del mismo) y sin signo va de 0 a 255.