加急:linux下wchar_t怎么输出?

Coder李海波 2007-07-25 02:55:05
1.下面的代码怎么输出地址:0x8058010,怎么输出中文?
wchar_t *w1 = L"中国";
cout << w1<< endl;

2.读取一个文件,比如编码是gb2312,需要怎么进行编码转换才能正确输出?

3.怎么将已知编码如gb2312的文件,转换另存为Unicode的文件?
...全文
799 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不会吧,我设置""就不可以,似乎跟语言设置有关系。
Coder李海波 2007-07-25
  • 打赏
  • 举报
回复
to akirya
我设置为zh_CN.GBK/gb2312都不行,设为""才行,奇怪了。
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
setlocale( LC_ALL , "zh_CN.gb2312" );
char sz[]="a中文s";
wchar_t xx[64]={0};
mbstowcs(xx,sz, 63 );
wcout<<xx<<endl;
}
转换输出都有了
Coder李海波 2007-07-25
  • 打赏
  • 举报
回复
setlocale(LC_ALL, "");
wcout << L"中文"<< endl;
这样也行
Coder李海波 2007-07-25
  • 打赏
  • 举报
回复
setlocale(LC_ALL, "");
wprintf(L"%S",L"中国");
这样就可以了,哈哈
  • 打赏
  • 举报
回复
那个不是我说的,我只会用printf来输出宽字符
Coder李海波 2007-07-25
  • 打赏
  • 举报
回复
to lockhall
Lcout有这个函数么?只见过cout,wcout
to akirya
cout << L"中国"<<endl;
wcout <<L"中国"<<endl;
结果是:
0x8058250
-?
mdj_boy 2007-07-25
  • 打赏
  • 举报
回复
1.wcout
theendname 2007-07-25
  • 打赏
  • 举报
回复
wprintf(L"%S",w1);
  • 打赏
  • 举报
回复
1 我只知道printf("%S",L"xxxx");

2 直接输出啊。

3 setlocale( LC_ALL , "zh_CN.gb2312" );然后调用mbstowcs就可以了
lockhall 2007-07-25
  • 打赏
  • 举报
回复
2 3 编码的不会。

期待lx高人 :)
lockhall 2007-07-25
  • 打赏
  • 举报
回复
1.cout << *w1<< endl;

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧