¿Cómo puedo imprimir los valores wchar_t en la consola?

Ejemplo:

#include  using namespace std; int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; //Russian language cout << ru << endl << en; return 0; } 

Este código solo imprime valores HEX como dirección. Cómo imprimir la cadena wchar_t?

    Editar: Esto no funciona si está intentando escribir texto que no se puede representar en su configuración regional predeterminada. 🙁

    Use std::wcout lugar de std::cout .

     wcout < < ru << endl << en; 

    ¿Puedo sugerirle std::wcout ?

    Entonces, algo como esto:

     std::cout < < "ASCII and ANSI" << std::endl; std::wcout << L"INSERT MULTIBYTE WCHAR* HERE" << std::endl; 

    Puede encontrar más información en una pregunta relacionada aquí .

    Puede utilizar una matriz de caracteres normal que en realidad está llena de caracteres UTF-8. Esto debería permitir mezclar caracteres en todos los idiomas.

     #include  using namespace std; void main() { setlocale(LC_ALL, "Russian"); cout < < "\tДОБРО ПОЖАЛОВАТЬ В КИНО!\n"; } 

    Puede imprimir caracteres anchos con wprintf .

    Código:

     #include  int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; //Russian language wprintf(en); wprintf(ru); return 0; } 

    Salida:

    Hola
    Привет

    no estamos buscando maneras fáciles!

     int i = 0; while (ru[i]) { std::cout < < (char)ru[i]; i++; }