2014-10-12 79 views
1

考慮到該字母的UTF-16較低的2字節存儲在unsigned short變量中,我希望將一個孟加拉語字母打印到控制檯。C++:將unsigned short變量的值打印爲unicode字符

例如,對於信(參考:

的Unicode值是 - 0985(十六進制)

我有,unsigned short unicodeChar = 0x0985;

現在,我怎麼能打印這封信使用unicodeChar的值?

說明:我試過了這個 - cout << "\u0985";,它正確打印

但我希望能夠打印由變量unicodeChar

+0

使用的wchar_t,而不是無符號短。 – 2014-10-12 12:56:47

+0

我從二進制文件中讀取這個短值。我試過這樣做 - wchar_t wC = unicodeChar; cout << wC; 這打印unicodeChar的整數值 – crysoberil 2014-10-12 13:04:03

回答

1

嘗試爲代表的使用爲const char *存儲值的字符。

#include <iostream> 

using namespace std; 
int main() 
{ 
    const char* uC = "\u0985"; 
    cout << uC << endl; 
} 

如果你想使用無符號短的值,可以使用setlocale%lc打印:

#include <stdio.h> 
#include <locale.h> 
int main() 
{ 
    if (!setlocale(LC_CTYPE, "")) 
    { 
     fprintf(stderr, "Error:Please check LANG, LC_CTYPE, LC_ALL.\n"); 
     return 1; 
    } 

    unsigned short unicodeChar = 0x0985; 
    printf ("%lc\n",unicodeChar); 
} 
+0

'unicodeChar'應該是一個變量。其實,我從二進制文件中讀取這個變量。之後,我必須根據它的價值打印一個角色。 – crysoberil 2014-10-12 12:56:09

+0

如何使用setlocale()? – 2014-10-12 14:19:13

+0

非常感謝。這似乎解決了這個問題! – crysoberil 2014-10-12 15:09:24