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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?  (Leído 17,299 veces)
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« en: 18 Abril 2011, 00:27 am »

Al imprimir líneas de texto en un programa en modo consola, las tildes, signos de exclamación/interrogación y otros no se muestran correctamente y se sustituyen por otros raros :S ¿Por qué pasa eso y cómo se puede arreglar?


En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #1 en: 18 Abril 2011, 01:34 am »

creo que es porque por defecto usas ASCII, y este no contiene caracteres con tildes y demas, te dejo la tabla ASCII
http://www.webtutoriales.com/images/tutoriales/tabla_ascii.gif

Para imprimir tildes y otros caracteres, deberias de usar unicode, pero ahora mismo desconozco si se puede usar unicode con ANSI C


En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #2 en: 18 Abril 2011, 01:53 am »

Se usa ASCII por defecto en el compilador, dependiendo del programa, en el código, en todo el sistema o donde??

El ASCII extendido sí soporta tildes.
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Castiblanco


Desconectado Desconectado

Mensajes: 2.439


THC is my cup of tea.


Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #3 en: 18 Abril 2011, 04:11 am »

Si te fijas cuando pones caracteres especiales en el compilador sale una cosa y en la consola sale otra, pero esa otra no siempre es la misma, varia dependiendo el carácter que pusiste... creo que era algo como que en un lado se maneja ASCII y en el otro ANSI, entonces el carácter 100 en ASCII no es el mismo que el 100 en ASCII y así... pero no estoy nada seguro.

Igual mira en la practica es así ^^, si quieres que salgan tildes:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. printf("\240"); //a
  8. printf("\202"); //e
  9. printf("\241"); //i
  10. printf("\242"); //o
  11. printf("\243"); //u
  12.  
  13. system("pause");
  14.  
  15. }
  16.  

PD: Yo uso Windows, pero creo (eso si estoy casi seguro), que en Linux si funciona normal esto de las tildes.

Saludos...
« Última modificación: 18 Abril 2011, 04:13 am por Castiblanco » En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #4 en: 18 Abril 2011, 04:30 am »

El compilador ha tirado como 3 errores cuando pegue tu código. Además estoy empezando a programar en C, no en C++, creo que el código que has puesto es para C++.
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Castiblanco


Desconectado Desconectado

Mensajes: 2.439


THC is my cup of tea.


Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #5 en: 18 Abril 2011, 05:02 am »

Qué compilador usas? y qué errores da?

Yo uso Dev-C++

Saludos...
En línea

Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #6 en: 18 Abril 2011, 05:37 am »

Uso code::blocks

Los errores son:
Citar
error: iostream: No such file or directory
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'namespace'
In function 'main':
warning: incompatible implicit declaration of built-in function 'printf'
||=== Build finished: 2 errors, 1 warnings ===|
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #7 en: 18 Abril 2011, 06:39 am »

ninguno de esos es compilador, son IDEs, el compilador que usan ambos por defecto es gcc sobre mingw

deben usar \000 y reemplazar los 0's por el equivalente octal del caracter ascii
En línea

Ojo por ojo, y el mundo acabará ciego.
Aikanáro Anário


Desconectado Desconectado

Mensajes: 694



Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #8 en: 18 Abril 2011, 07:33 am »


deben usar \000 y reemplazar los 0's por el equivalente octal del caracter ascii


¿Explicas?
En línea

Lo que faltaba en internet: http://binar10s.blogspot.com/
Castiblanco


Desconectado Desconectado

Mensajes: 2.439


THC is my cup of tea.


Ver Perfil WWW
Re: ¿Por qué no se muestran las tildes y "caracteres especiales" en C?
« Respuesta #9 en: 18 Abril 2011, 14:36 pm »

Ahh ahora todo más claro :P

Ya, miras el carácter que quieras poner, luego miras su número decimal y lo pasas a octal y lo pones en vez de las XXX...

Código
  1. printf("\XXX");



Entonces el de la "á" en decimal es 160, lo pasas a octal y da 240 y eso es lo que pones en vez de la XXX...

Pasar de decimal a octal :http://calc.50x.eu/

Saludos...
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines