c++中的wchar_t

vogue1987 2009-04-15 06:19:25
#include <iostream>

int main()
{
wchar_t ch = '刘';
std::cout << ch << std::endl;
std::cin >> ch;
}


上边红色代码编译不过,为什么?
如果wchar_t换成char类型便可以编译过。

另外蓝色代码为什么输出的不是“刘”,而是“49653”?
谢谢各位了


...全文
242 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vogue1987 2009-04-18
  • 打赏
  • 举报
回复
谢谢各位,我再试试
adventurelw 2009-04-16
  • 打赏
  • 举报
回复
up一下
试了一下
用wcout.imbue(locale("chs"))仍然输不出内容。
用加L的方法也输不出。。。。。。。
vs2005.
期待!
中才德创 2009-04-15
  • 打赏
  • 举报
回复
up
fairchild811 2009-04-15
  • 打赏
  • 举报
回复
学习,unicode
whillcoxdennis 2009-04-15
  • 打赏
  • 举报
回复
学习了
loud1984 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 vogue1987 的帖子:]
#include <iostream>

int main()
{
wchar_t ch = '刘';
std::cout < < ch < < std::endl;
std::cin >> ch;
}


上边红色代码编译不过,为什么?
如果wchar_t换成char类型便可以编译过。

另外蓝色代码为什么输出的不是“刘”,而是“49653”?
谢谢各位了



[/Quote]要加L,wchar_t ch = L'刘',还是wchar_t ch = '刘'L,记不清除了,你试试应该就好了。
operatingtuzi 2009-04-15
  • 打赏
  • 举报
回复
wcout.imbue(locale("chs"));
wcout< < ch < < std::endl;
wcin >> ch;
ericming200409 2009-04-15
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
用wcout输出wchar_t类型的时候,如果wchar_t变量内容为中文字符串时,wcout没有输出任何字符,想到可能是字符编码与wcout默认的字符编码不一致的问题,后经过设置或转换wchar_t类型变量后,输出正常。方法如下:
设置wcout的本地化属性: cout.imbue(locale("chs"));

也可以使用ATL转换宏:cout << W2A(wsComInfo) << endl;
「已注销」 2009-04-15
  • 打赏
  • 举报
回复
用wcin和wcout
jackyjkchen 2009-04-15
  • 打赏
  • 举报
回复
用wcout和wcin……恶心的宽字
「已注销」 2009-04-15
  • 打赏
  • 举报
回复
wchar_t ch = '刘';
改成
wchar_t ch = L'刘';

65,211

社区成员

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

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