? ñ y acentos en consola

12/04/2004 - 20:31 por Carlos | Informe spam
Hola

acabo de terminar un pequeño programa Win32 de consola con VC++ .net 2003
sobre Windows XP y tengo el problema siguiente:
no me muestra ni el símbolo del Euro, ni la letra ñ ni las vocales con
acentos
(en su lugar aparece un símbolo extraño)

Sin embargo, si las escribo desde el teclado sí me las muestra.

El programa está escrito en C y utilizo printf y puts para mostrar las
cadenas
(que son de unsigned char)

Al principio de main() le añadí
setlocale( LC_ALL , "esn_esp" );
por si servía, pero todo sigue igual

¿Cómo puedo arreglar ésto?

Muchas gracias y saludos
 

Leer las respuestas

#1 Victor Roman
14/04/2004 - 11:33 | Informe spam
Buenas Carlos,

esto es debido a que las tablas de caracteres son diferentes para MSDOS
y Windows.

Para subsanar esto tienes dos opciones, la primera seria imprimir
directamente el valor ASCII de las letras en cuestion con %c, y la
segunda utilizar una tabla de conversion que realice dicha tarea por ti
mediante una llamada a una funcion especifica.

Para esto segundo te adjunto un enlace de algo que desarrollamos hace
tiempo y que puedes utilizar libremente:

http://cvs.sourceforge.net/viewcvs....mp;rev=1.3

Como podras ver, estan definidas del tipo "byte"; puedes sustituir esa
palabra por "unsigned char" o bien definir el tipo de dato byte como:
"typedef unsigned char byte"

Un saludo,
Victor Roman - (a.k.a. Daijo)


Carlos wrote:
Hola

acabo de terminar un pequeño programa Win32 de consola con VC++ .net 2003
sobre Windows XP y tengo el problema siguiente:
no me muestra ni el símbolo del Euro, ni la letra ñ ni las vocales con
acentos
(en su lugar aparece un símbolo extraño)

Sin embargo, si las escribo desde el teclado sí me las muestra.

El programa está escrito en C y utilizo printf y puts para mostrar las
cadenas
(que son de unsigned char)

Al principio de main() le añadí
setlocale( LC_ALL , "esn_esp" );
por si servía, pero todo sigue igual

¿Cómo puedo arreglar ésto?

Muchas gracias y saludos


Preguntas similares