Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: <<<-Basura->>> en 19 Junio 2011, 08:05 am



Título: Problema con la Ñ
Publicado por: <<<-Basura->>> en 19 Junio 2011, 08:05 am
Mi duda es simple. he rebuscado con google y caigo en soluciones tontas y sin sentido:
Bueno lo que quiero saber es como imprimir la ñ !!!
en C/C++
Código
  1. printf( " ñ " );
Código
  1. std::cout >> " ñ " ;

alguien puede decirmelo  :-\


Título: Re: Problema con la Ñ
Publicado por: Slava_TZD en 19 Junio 2011, 08:22 am
Código:
printf(“%c”,164);


Título: Problema con la Ñ
Publicado por: sik2986 en 19 Junio 2011, 08:52 am
Hola, aquí te dejo un algoritmo que te muestra diferentes maneras de imprimir la "Ñ" o "ñ" en C++ he utilizado cout y printf para que tengas más opciones (en este caso he utilizado Dev C++). espero que te sirva ;) porque io también me tomé mi tiempo buscado estos códigos:

Código
  1. #include <iostream>//Para cout
  2. #include <conio.h> /*Para el getch --> para que pause la ventana aunque esa no es su verdadera función*/
  3. using namespace std;//Para cout
  4. int main()
  5. {
  6.    cout<<"\n\tEn HEXADECIMAL:\n";
  7.    cout<<" \xa4 "; //Hexadecimal --> ñ=\xa4
  8.    cout<<" \xa5 "; //Hexadecimal --> Ñ=\xa5
  9.  
  10.    cout<<"\n\tEn DECIMAL:\n";
  11.    cout<<char(164); //Decimal --> ñ=165
  12.    cout<<char(165); //Decimal --> Ñ=165
  13.  
  14.    cout<<"\n\tEn OCTAL:\n";
  15.    cout<<" \244 "; //Octal --> ñ=\244
  16.    cout<<" \245 "; //Octal --> Ñ=\245
  17.  
  18.    printf("\n\tEn HEXADECIMAL:\n");
  19.    printf(" \xa4 "); //Hexadecimal --> ñ=\xa4
  20.    printf(" \xa5 "); //Hexadecimal --> Ñ=\xa5
  21.  
  22.    printf("\n\tEn DECIMAL:\n");
  23.    printf(" %c ",164); //Decimal --> ñ=165
  24.    printf(" %c ",165); //Decimal --> Ñ=165
  25.  
  26.    printf("\n\tEn OCTAL:\n");
  27.    printf(" \244 "); //Octal --> ñ=\244
  28.    printf(" \245 "); //Octal --> Ñ=\245
  29.  
  30.    getch();
  31.    return 0;
  32. }
  33.  

Aquí te dejo un algoritmo que me sirvió mucho para hacer alguna tareas ;) espero que te sea útil a ti también:

Código
  1. // Codigo ofrecido por Tutores.org
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. int main()
  6. {
  7. int i;
  8.  
  9. for(i = 0; i != 256; i++)
  10. switch (i)
  11. {
  12. case 9:
  13. printf("\nCaracter = 'tab' -- Dec = %i -- Hex = %X -- Oct = %o -- Escribir \\x%x o \t ", i, i, i, i);
  14. break;
  15. case 10:
  16. printf("\nCaracter = 'enter' -- Dec = %i -- Hex = %X -- Oct = %o -- Escribir \\x%x o \n ", i, i, i, i);
  17. break;
  18. case 13:
  19. printf("\nCaracter = 'retorno' -- Dec = %i -- Hex = %X -- Oct = %o -- Escribir \\x%x o \r ", i, i, i, i);
  20. break;
  21. default:
  22. printf("\nCaracter = %c -- Dec = %i -- Hex = %X -- Oct = %o -- Escribir \\x%x ", i, i, i, i, i);
  23. break;
  24. }
  25.  
  26. getch();
  27. return 0;
  28. }
  29.  



Título: Re: Problema con la Ñ
Publicado por: <<<-Basura->>> en 19 Junio 2011, 19:21 pm
Bueno lo intente con todas las formas que me pusieron hay y pues la verdad ninguna me sirvió sale este carácter en lugar del que necesito.

��������

ese mismo, que puede ser ??


Título: Re: Problema con la Ñ
Publicado por: Dark Invader en 19 Junio 2011, 19:29 pm
A mi este me sirve perfectamente,me da la ñ por pantalla,y ya te lo han recomendado por lo que veo:

Código
  1. #include <iostream>
  2. using namespace std ;
  3.  
  4. int main(){
  5.    cout << "ma"<<char(164)<<"a" << endl;
  6. cin.get();
  7. return 0;
  8. }
  9.  

Un cast muy simple.

Salu2


Título: Re: Problema con la Ñ
Publicado por: <<<-Basura->>> en 19 Junio 2011, 20:46 pm
Mira lo que me sale:

ma�a

eso con tu código, que puede ser  :huh:


Título: Re: Problema con la Ñ
Publicado por: Dark Invader en 19 Junio 2011, 20:53 pm
Pues no se que puede ser¿Que IDE usas?

Mira a ver si con un puntero podemos escribir la ñ en la direccion de memoria,pero es derrochar codigo en una cosa que deberia funcionar con las otras acciones,aun asi por probar...

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5. char *p;
  6. char letra;
  7. p = &letra;
  8. *p = char(164);
  9. cout << letra << endl;
  10. cin.get();
  11. return 0;
  12. }

¿Te sale eso con cualquier cast?

Salu2


Título: Re: Problema con la Ñ
Publicado por: <<<-Basura->>> en 19 Junio 2011, 21:46 pm
Nop sigue dando el mismo error la verdad pienso que es por el teclado y la configuración del terminal


Título: Re: Problema con la Ñ
Publicado por: Dark Invader en 19 Junio 2011, 21:49 pm
¿Qué IDE utilizas?¿has probado a reinstalarlo por si el problema es ese?.

Más no sabría decite,los códigos están bien,eres el único al que no se le muestra correctamente...

Podrías probar a reinstalarlo y ver como te funciona.

Salu2


Título: Re: Problema con la Ñ
Publicado por: <<<-Basura->>> en 20 Junio 2011, 03:06 am
He usado ya varios IDEs no se que sea el problema  :-\


Título: Re: Problema con la Ñ
Publicado por: Plize en 2 Marzo 2016, 12:31 pm
(http://s19.postimg.org/b2v950aq9/Captura2.png)

Buscando una solución a este problema llegué hasta aquí, Solución para CodeBlocks.

Menú Preferencias -> Editor
General Options-> (Pestaña) Encoding settings
Encoding
Use encoding when opening files: WINDOWS-1252
(No funciona con UTF-8)

En Editor setting -> Font:  Courier New, Script: Cetroeuropeo
Lucida Console

Compila y ejecuta por ejemplo este código en C++
#include<iostream>

Código:
#include<iostream>

int main(){
    setlocale(LC_ALL,"spanish");
    std:: cout << "¡José está en España!" << std:: endl;
    return 0;    
}

Cuando se abra la ventana de consola, pulsa haz clic derecho sobre la franja superior de ella, donde pone el nombre de tu fichero, en el menú que aparece, escoge Predeterminado. Ves a la pestaña Fuente, selecciona Lucida Console, un tamaño 12 es suficiente, (texto en la consola cmd se muestra mas pequeño que con Fuentes de mapa de bits). Pulsa en aceptar y cierra la ventana.

Haz cualquier modificación en tu código, por ejemplo cambiar de
José está en España    a
José estará en España
vuelve a compilar y ejecutar, ahora los caracteres latinos deben aparecen correctamente.