Autor
|
Tema: como poner acentos (Leído 20,682 veces)
|
noctis
Desconectado
Mensajes: 1
|
estoy con C y no puedo poner acentos para las palabras al intentar copiar un texto muchas gracias
|
|
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
- 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: #include <stdio.h> int main() { return 0; }
Y este para C++: #include <iostream> #include <clocale> int main() { std::locale::global(std::locale("spanish")); std::cout << "á."; std::cin.get(); return 0; }
Espero que haya quedado claro
|
|
« Última modificación: 16 Noviembre 2010, 22:35 pm por Horricreu »
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
#include <stdio.h> int main(){ printf("Hay un %crbol, que mat%c a un colibr%c.",160,162,161); printf("\nHay un \xA0rbol, que mat\xA2 a un colibr\xA1."); return 0; }
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
Mensajes: 31
|
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
Mensajes: 290
¡La verdad os hará libres!
|
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
Mensajes: 84
No me mires
|
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
Mensajes: 290
¡La verdad os hará libres!
|
Es que "á" es un solo carácter 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
Mensajes: 84
No me mires
|
¿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?
|
|
|
En línea
|
Duérmete
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
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
Mensajes: 84
No me mires
|
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
|
|
|
|
|