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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  como poner acentos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como poner acentos  (Leído 20,117 veces)
noctis

Desconectado Desconectado

Mensajes: 1


Ver Perfil
como poner acentos
« en: 24 Octubre 2010, 12:33 pm »

estoy con C y no puedo poner acentos para las palabras al intentar copiar un texto muchas gracias


En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: como poner acentos
« Respuesta #1 en: 24 Octubre 2010, 13:12 pm »

  • Si estás programando en C, la función printf() te permite, mediante el parámetro de carácter %c, pasarle un código ASCII, en este caso un acento.
  • Si estás programando en C++, la librería clocale junto con la función de salida de la librería iostream, cout, te permite trabajar con acentos con total normalidad.

Este es un ejemplo para C:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. printf("%c.", 160);
  6.  
  7.  
  8. return 0;
  9. }

Y este para C++:

Código
  1. #include <iostream>
  2. #include <clocale>
  3.  
  4. int main()
  5. {
  6. std::locale::global(std::locale("spanish"));
  7.  
  8. std::cout << "á.";
  9.  
  10. std::cin.get();
  11.  
  12. return 0;
  13. }

Espero que haya quedado claro :)


« Última modificación: 16 Noviembre 2010, 22:35 pm por Horricreu » En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: como poner acentos
« Respuesta #2 en: 24 Octubre 2010, 13:26 pm »

Código
  1. #include <stdio.h>
  2. int main(){
  3. printf("Hay un %crbol, que mat%c a un colibr%c.",160,162,161);
  4. printf("\nHay un \xA0rbol, que mat\xA2 a un colibr\xA1.");
  5. return 0;
  6. }
  7.  

Espero que entiendas el porque.

Ahora todos.

á –> printf(”%c”,160);
é –> printf(”%c”,130);
í –> printf(”%c”,161);
ó –> printf(”%c”,162);
ú –> printf(”%c”,163);

á –> printf(”\xA0″);
é –> printf(”\x82″);
í –> printf(”\xA1″);
ó –> printf(”\xA2″);
ú –> printf(”\xA3″);
« Última modificación: 24 Octubre 2010, 16:55 pm por Littlehorse » En línea

MG2010

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: como poner acentos
« Respuesta #3 en: 24 Octubre 2010, 13:29 pm »

Citar
Si estás programando en C++, la librería locale junto con la función de salida de la librería iostream, cout, te permite trabajar con acentos con total normalidad.
En mi ubuntu no necesito incluir locale... pero supongo que es un buen tip para aumentar la potabilidad del código...

Gracias !
En línea

User
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: como poner acentos
« Respuesta #4 en: 24 Octubre 2010, 13:38 pm »

Directamente, locale y clocale son librerías standard de C y C++ respectivamente.
« Última modificación: 16 Noviembre 2010, 22:42 pm por Horricreu » En línea

globsharp

Desconectado Desconectado

Mensajes: 84


No me mires


Ver Perfil
Re: como poner acentos
« Respuesta #5 en: 24 Octubre 2010, 14:20 pm »

Hay algo que no he entendido, se supone que cuando escribes printf("á") esto lo toma como una 'a' y un acento, osea, dos caracteres, que es lo que se detecta normalmente como un caracter extraño, ¿no? ¿Y cuando usas el código ASCII lo detecta como un único carácter y este lo detecta correctamente cualquier codificación?

A ver si lo he entendido bien, pues con el tema de los acentos sigo liándome mucho.
En línea

Duérmete
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: como poner acentos
« Respuesta #6 en: 24 Octubre 2010, 14:59 pm »

Es que "á" es un solo carácter ;D Acentos y caracteres especiales del alfabeto latino, que NO forman parte del propio código ASCII, están en su ampliación estándar ISO/IEC 8859-1.
« Última modificación: 16 Noviembre 2010, 22:34 pm por Horricreu » En línea

globsharp

Desconectado Desconectado

Mensajes: 84


No me mires


Ver Perfil
Re: como poner acentos
« Respuesta #7 en: 24 Octubre 2010, 15:45 pm »

¿Pero entonces por qué al hacerlo con código ASCII se visualiza bien y al hacerlo poniendo directamente 'á' sale un caracter extraño? ¿No es lo mismo?  :huh:
En línea

Duérmete
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: como poner acentos
« Respuesta #8 en: 24 Octubre 2010, 16:05 pm »

La verdad es que no sé el por qué. Pero si quieres, puedes cambiar la configuración de tu proyecto a Unicode y, utilizar una función de salida con caracteres especiales sin ningún tipo de problema.
« Última modificación: 16 Noviembre 2010, 22:33 pm por Horricreu » En línea

globsharp

Desconectado Desconectado

Mensajes: 84


No me mires


Ver Perfil
Re: como poner acentos
« Respuesta #9 en: 24 Octubre 2010, 16:19 pm »

Aah ya lo entendí, es por la codificación en el proyecto. Es que me parecía lo mismo y por eso no lo entendía, gracias ;)
En línea

Duérmete
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo poner acentos en un placeholder de un formulario
Desarrollo Web
T0p1t0 2 5,652 Último mensaje 30 Mayo 2013, 23:23 pm
por T0p1t0
Poner acentos en archivo BAT
Scripting
MaX2 6 4,650 Último mensaje 4 Febrero 2022, 22:07 pm
por MaX2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines