C/C++输出用户指定的Unicode字符?

用户输入一个十六进制,要求输出该十六进制对应的Unicode字符。
下面这串代码可以实现五位以下的该功能:

long num=0;
cout<<"输入Unicode码(十六进制):";
cin>>hex>>num;
wchar_t wtext[6];
wsprintfW(wtext, L"%c", num);
MessageBoxW(NULL,wtext, L"RESULT",MB_ICONEXCLAMATION);

但是现在需要的是五位的Unicode字符,%c无法使用,该怎么办,急

long num = 0;
cout << "输入Unicode码(十六进制):";
cin >> hex >> num;
wchar_t wtext[6];
wsprintfW(wtext, L"%lc", num);
MessageBoxW(NULL, wtext, L"RESULT", MB_ICONEXCLAMATION);

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

说实话是没弄懂你的代码意义。按题目意思,知识点应该是这样的:wchar_t 是专为双字节编码设计的数据类型,应该能够识别适应大多数公认的双字节编码设计,而且应该能够扩展新的编码方案;你可以直接用流把数据输入到wchar_t 类型变量或者数组中,字符和数据是等效的;sprintf函数的用法好像有其他含义,你的理解应该是不正确的;需要设定Unicode为当前编码方案,并在退出前恢复原有设置;也可以在系统设置中设定Unicode为系统编码方案。