elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Representación hexadecimal de las vocales con acento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Representación hexadecimal de las vocales con acento  (Leído 5,107 veces)
cesariox23

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Representación hexadecimal de las vocales con acento
« en: 24 Mayo 2014, 16:09 pm »

Estimados señores: Soy un estudiante autodidacta y de nivel principiante del lenguaje C, siempre que he querido mostrar acentos en mis textos lo he hecho de la siguiente manera:
printf("\nN%cmero de cuenta: ", 163);

Tenía entendido que también se podía colocar el valor hexadecimal de caracter insertándolo en el mismo texto de la siguiente manera:
printf("\nN\xA3mero de cuenta: ");

Así lo hice y escribí un programa en donde usé varias veces los valores hexadecimales para mostrar correctamente las letras con acentos y al momento de compilar me sale el siguiente mensaje:

warning: secuencia de escape hexadeximal fuera de rango (enabled by default)

En el programa que estaba escribiendo tenía como 5 líneas de código con instrucciones printf que usaban estos valores y me salió 5 veces el mensaje arriba expuesto. La tabla que estoy usando es esta:

á: \xA0
é: \x82
í: \xA1
ó: \xA2
ú: \xA3

El programa compiló igualmente y al momento de ejecutarlo en donde se supone que debería estar una letra con acento solo hay una línea, algo asi como "N-mero de cuenta: ".

Estoy haciendo algo mal? O se requiere algún archivo de cabecera extra? (Hasta ahora solo he usado el stdio.h) De antemano les agradezco cualquier ayuda que puedan brindarme, ah y por cierto, mi entorno donde programo es este:

Compilador: gcc 4.8.1-4 (MinGW - www.mingw.org)
IDE: Codeblocks svn 9677 (Nightly)
S.O: Windows XP SP3


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Representación hexadecimal de las vocales con acento
« Respuesta #1 en: 24 Mayo 2014, 19:44 pm »

Por lo que tengo entendido al usar esas secuencias de escape la siguiente letra a dicha secuencia no puede ser un dígito numérico ni letra de la a a la f o el compilador la tomará como parte del hexadecimal y dará el warning que comentas.

Es decir si quieres escribir "tenía"=ten\xA1a como lo que sigue a xA1 es una a se tomará como parte del hexadecimal imprimiendo por ello un caracter no esperado y lanzando el consiguiente warning.


¡¡¡¡ Saluditos! ..... !!!!




« Última modificación: 24 Mayo 2014, 19:56 pm por leosansan » En línea

JoelGonzalez

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Representación hexadecimal de las vocales con acento
« Respuesta #2 en: 28 Mayo 2014, 02:08 am »

Una posible solución a tu problema sería utilizar la secuencia de escape octal, que al igual que la secuencia hexadecimal, te permite imprimir carácteres del ascii extendido en la función printf de esta manera:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.   printf("\n**Vocales acentuadas**\n");
  6.   printf("\n \265rbol - \265rbol");
  7.   printf("\n Empec\220 - empec\202");
  8.   printf("\n Decid\326 - decid\241");
  9.   printf("\n Comunicaci\340n - comunicaci\242n");
  10.   printf("\n \351til - \243til\n");
  11.  
  12.   printf("\n**Simbolos especiales del espa\244ol**\n");
  13.   printf("\n \245o\244o");
  14.   printf("\n \250D\242nde estoy?");
  15.   printf("\n \255Ven aqu\241!");
  16.   printf("\n Creo ver un ping\201ino");
  17.  
  18.   return 0;
  19. }
  20.  

El resultado de este código tendría que ser:

Código:

**Vocales acentuadas**

 Árbol - árbol
 EmpecÉ - empecé
 DecidÍ -decidí
 CominucaciÓn - comunicación
 Útil - útil

**Simbolos especiales del español**

 Ñoño
 ¿Dónde estoy?
 ¡Ven aquí!
 Creo ver un pingüino


Espero haberte ayudado y también espero que sigas aprendiendo más de este interesante lenguaje de programación.
En línea

cesariox23

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Representación hexadecimal de las vocales con acento
« Respuesta #3 en: 29 Junio 2014, 07:19 am »

Les agradezco mucho la ayuda prestada, es motivador saber que mis dudas son solventadas por personas con gran conocimiento del tema.

Saludos y éxitos a todos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda en C++ vocales con acento
Programación C/C++
adan-2994 3 5,391 Último mensaje 1 Diciembre 2011, 22:48 pm
por Eternal Idol
Representación de un número
Java
maikmilk 6 3,677 Último mensaje 6 Junio 2012, 16:48 pm
por lluvplay
eliminar vocales
Programación C/C++
ALONSOQ 6 11,949 Último mensaje 6 Septiembre 2012, 19:38 pm
por BlackZeroX
dominios con acento. « 1 2 »
Dudas Generales
skan 18 8,703 Último mensaje 28 Octubre 2013, 14:27 pm
por skan
¿metodo reduccion del acento nativo?
Foro Libre
bacanzito 0 1,242 Último mensaje 17 Octubre 2014, 08:28 am
por bacanzito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines