Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: zikotik en 7 Diciembre 2012, 23:21 pm



Título: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: zikotik en 7 Diciembre 2012, 23:21 pm
Hola gente, pues tengo un pequeño problemita...
estoy haciendo un programa, pero dados mis conocimientos sobre el idioma ruso, quisiera hacerlo en ruso, el problema es que no sé cómo hacer para mostrar caracteres hexadecimales en C++.

Por ejemplo:

привет мир.
hola mundo.

el hexadecimal de éso sería:

043f  0440  0438  0432  0435  0442  043c  0438  0440

Pero no sé cómo hacer que se muestren los caracteres cirílicos con la función cout o printf.
Si alguien me ayuda, le estoy agradecido !


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: Beakman en 8 Diciembre 2012, 05:14 am
Intenta agregando la librería: "locale.h". Luego pones estas dos funciones:
Código
  1. setlocale(LC_ALL, "Russian");
  2. SetConsoleOutputCP(866);

Por último simplemente mostrás el mensaje:
cout << "привет мир";

Esto es solo en windows, en sistemas linux lo muestra directamente.


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: zikotik en 8 Diciembre 2012, 14:03 pm
Puse

Código:
#include <locale.h>
#include <iostream>
#include <conio.h>

using namespace std;
   
int main()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleOutputCP(866);
   
    cout << "\u043f\u0440\u0438\u0432\u0435\u0442 \u043c\u0438\u0440";
    getch();
    return 0;
}

Me ocurren 2 errores solamente.

1. Cuando escribo los caracteres en ruso, me los escribe como hexadecimal y éso que uso Linux...
2. En la línea de "setlocale(LC_ALL, "Russian");" me aparece lo siguiente:

Po cierto, aclaro que uso "Dev Cpp".

Código:
Int function 'int main()':
'SetConsoleOutputCP' undeclared (first use this function)

Primero me fijé si tenía esa librería, y resultó que sí.
Cuestión, invertí entonces el código, osea, puse el "SetConsoleOutputCP" antes de "setlocale", y me aparecía lo mismo. Inclusive probé poniendo ambas líneas fuera de "int main()", pero nada...


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: 0xDani en 8 Diciembre 2012, 14:13 pm
Creo recordar que en C++ esta el tipo wchar para soportar unicode.

Saludos.


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: zikotik en 8 Diciembre 2012, 15:55 pm
El wchar_t no me funcionó lamentablemente.


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: 0xDani en 8 Diciembre 2012, 20:15 pm
El wchar_t no me funcionó lamentablemente.

Has probado a usar wcout?


Título: Re: Necesito mostrar caracteres Hexadecimales en C++
Publicado por: zikotik en 8 Diciembre 2012, 20:27 pm
síp, y tampoco funca.