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 !
Intenta agregando la librería: "locale.h". Luego pones estas dos funciones:
setlocale(LC_ALL, "Russian");
SetConsoleOutputCP(866);
Por último simplemente mostrás el mensaje:
cout << "привет мир";
Esto es solo en windows, en sistemas linux lo muestra directamente.
Puse
#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".
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...
Creo recordar que en C++ esta el tipo wchar para soportar unicode.
Saludos.
El wchar_t no me funcionó lamentablemente.
Cita de: zikotik en 8 Diciembre 2012, 15:55 PM
El wchar_t no me funcionó lamentablemente.
Has probado a usar wcout?
síp, y tampoco funca.