C/Visual C - Ayuda VisualC++: printf y los acentos bajo WinXP

 
Vista:

Ayuda VisualC++: printf y los acentos bajo WinXP

Publicado por Carlos G.B. (2 intervenciones) el 05/12/2004 16:22:38
Hola a tod@s:

Estoy ya hasta las narices de dar vueltas y vueltas para conseguir sacar por pantalla los acentos y la Ñ en la función printf de VisualC++ directamente sin tener que usar trucos como codigos octales o variables correspondientes al codigo de las letras.

Soy principiante e intento hacer una aplicación de consola que me imprima correctamente las cadenas literales.

He mirado en todas partes y he llegado a la conclusión de que VisualC++ utiliza un codepage ANSI. ¿Como puedo cambiarlo?

Me he liado a probar todo tipo de funciones como setlocale(), _setmbcp(). He jugueteado con las definiciones _UNICODE y _MBCS, las macors _T, _TCHAR, etc y... NO HAY MANERA. Es mas, creo que en realidad me estoy perdiendo por las ramas cuando en realidad debería ser mas sencillo.

La pregunta correcta es:
¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿

//En Windows XP bajo Visual C++ 6 Como hago para que esto:

printf( "áàéèíìóòúùñÁÀÉÈÍÌÓÒÚÙÑ\n" );

// me imprima :
áàéèíìóòúùñÁÀÉÈÍÌÓÒÚÙÑ

// en lugar de esta basura:
ßÓÚÞÝý¾‗·¨±┴└╔╚═╠ËÊ┌┘Ð

?????????????????????????????????????????????????????

Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:Ayuda VisualC++: printf y los acentos bajo WinX

Publicado por zzz (318 intervenciones) el 06/12/2004 00:40:47
Hola! la unica forma que conozco para que te muestre la ñ o caracteres raros en con la funcion putchar(int); es una funcion que te muestra el caracter del codigo ascii que le das como paramentro
el entero es el codigo ascii del caracter que quieres mostrar, la ñ es el 164 y la Ñ es el 165
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema no resuelto, sigo buscando ayuda

Publicado por Carlos G.B. (2 intervenciones) el 06/12/2004 15:31:50
zzz, gracias por la respuesta. Pero yo me refería a alguna forma de hacerlo sin tener que utilizar directamente el codigo ASCII de los caracteres.

Estoy seguro de que existe alguna forma de personalizar el compilador para que interprete correctamente los caracteres raros sin tener que escribir codigos. Yo diría que tiene algo que ver con el ANSI character set de las narices. ¿Como cambiarlo? NI IDEA. De ahi que pida ayuda. Volveré a poner la pregunta aquí:

¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿

//En Windows XP bajo Visual C++ 6 Como hago para que esto:

printf( "áàéèíìóòúùñÁÀÉÈÍÌÓÒÚÙÑ\n" );

// me imprima :
áàéèíìóòúùñÁÀÉÈÍÌÓÒÚÙÑ

// en lugar de esta basura:
ßÓÚÞÝý¾‗·¨±┴└╔╚═╠ËÊ┌┘Ð

?????????????????????????????????????????????????????

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema no resuelto, sigo buscando ayuda

Publicado por Oscar Medina (114 intervenciones) el 06/12/2004 18:15:23
No entiendo bien tu problema..... si lo que queres manejar los caracteres ya lo estas haciendo porque al tener un array de chars ahi tenes toda la informacion del caracter. Ahora si queres visualizarlo ahi te diria que intentes visualizarlo en una ventana de windows porque si no tendrias que cambiar el charset de la ventana DOS en donde estas queriendo visualizarlo. Eso en XP no se como se hace. Pero si lo visualizas en una ventana windows visualizas ANSI y no tendrias problemas para mostrar las eñes y todo eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda VisualC : printf y los acentos bajo WinXP

Publicado por Pedro Luis recuenco Andrés (1 intervención) el 29/11/2011 10:43:18
Bueno, aunque tarde...

En visual c++ Express Edition 2008, para realizar aplicaciones de tipo consola usando funciones de salida tipo printf(), con acentos, etc, debes de:

1º. Incluir la librería #include <locale.h>

2º. Añadir al principio del main(), la siguiente línea: setlocale( LC_ALL, "Spanish" );

A mí me funcionó, y lo descubrí de pura casualidad (claro, después de 2 horas paseando la vista por la ayuda..)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar