Come posso stampare i valori di wchar_t in console?

Esempio:

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

Questo codice stampa solo valori HEX come indirizzo. Come stampare la stringa wchar_t?

Modifica: non funziona se si sta tentando di scrivere testo che non può essere rappresentato nelle impostazioni locali predefinite. 🙁

Usa std::wcout invece di std::cout .

 wcout << ru << endl << en; 

Posso suggerire std::wcout ?

Quindi, qualcosa del genere:

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

Potresti trovare più informazioni in una domanda correlata qui .

Potresti usare un normale array di caratteri che è in realtà pieno di caratteri utf-8. Questo dovrebbe consentire di mescolare i caratteri attraverso le lingue.

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

È ansible stampare caratteri ampi con wprintf .

Codice:

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

Produzione:

Ciao
Привет

non stiamo cercando strade facili!

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