首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在控制台上wcout显示中文有关问题

2012-02-07 
在控制台上wcout显示中文问题 wstringstrTargetL 中文 wcout strTarget中文显示不出来,我用WideCha

在控制台上wcout显示中文问题

wstring   strTarget   =   L "中文 ";
wcout   < <   strTarget;
中文显示不出来,我用WideCharToMultiByte才能转

怎么才能用wcout显示中文阿
另外求wcstombs的用法例子

[解决办法]
char sz[20] = "中文123 ";

wchar_t wsz[20] = L "\x4E2D\x6587\x0031\x0032\x0033 ";
// 运行时设定当前 ANSI 编码,VC 格式
setlocale(LC_ALL, ".936 ");

// GCC 中格式
setlocale(LC_ALL, "zh_CN.GBK ");

// Visual C++ 中使用小写 %s,按照 setlocale 指定编码输出到文件
// GCC 中使用大写 %S
fwprintf(fp, L "%s\n ", wsz);

// 把 UNICODE 字符串按照 setlocale 指定的编码转换成字节
wcstombs(sz, wsz, 20);
// 把字节串按照 setlocale 指定的编码转换成 UNICODE 字符串
mbstowcs(wsz, sz, 20);
[解决办法]
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, ".936 ");
wchar_t* ws = L "中文 ";
wcout < < ws < < endl;

}
[解决办法]
我windows 下面用的,inlcude <tchar.h>
#include <locale>

char czz[101]= "Begin被替换End ";
wchar_t wt[100];
wstring strTarget = L "中文 ";
wstring str2=L "y真是折腾人阿!!! ";
locale loc( " "),oldloc;
oldloc=wcout.imbue(loc);//设置
wcout < < strTarget < <endl;
wcout < <str2.c_str() < <endl;
wcout.imbue(oldloc); //用完恢复

setlocale(LC_ALL, " "); //设置本地默认
lstrcpy(wt,str2.c_str());
wcstombs(czz,str2.c_str(),sizeof(czz));
setlocale(LC_ALL, "C "); //用完恢复
cout < <czz < <endl;

strcpy(czz, "Begin被替换End ");
setlocale(LC_ALL, " "); //设置本地默认
wcstombs(czz,wt ,sizeof(czz));
setlocale(LC_ALL, "C "); //用完恢复

cout < <czz < <endl;

热点排行