wchar_t与char类型的转换时间:2022-05-06 22:40:44 C++标准中,wchar_t是宽字符类型,每个wchar_t类型占2个字节,16位宽。汉字的表示就要用到wchar_t 。char,我们都知道,占一个字节,8位宽。其实知道了这个以后,要在wchar_t 和 char两种类型之间转换就不难实现了。 #include <iostream.h>#include <string>using namespace std;void WtoC(wchar_t w_cn,char *c_cn){ c_cn[0]=w_cn>>8; //高8位存放在字符数组的低位 c_cn[1]=w_cn; c_cn[2]='/0';// return c_cn;}wchar_t CtoW(wchar_t &w_cn,char *c_cn){ w_cn=c_cn[0]<<8; w_cn|=c_cn[1]; return w_cn;}int main(){ char c_cn[3]={'0'}; wchar_t a=L'中'; cout<<a<<endl; WtoC(a,c_cn); cout<<c_cn[0]<<endl; cout<<c_cn[1]<<endl; std::string cn(c_cn); printf("%s/n",cn.c_str()); //打印字符串若用printf("%s/n",cn)则会造成内存崩溃 wchar_t b=CtoW(b,c_cn); cout<<b<<endl; return 0;}