开发者社区> 问答> 正文

C++中这样定义为什么会出错?? 400 报错

C++中这样定义为什么会出错?? 400 报错

在C++中定义

WCHAR A='你';

 WCHAR B='好';

有错,提示WCHAR是未定义的标识符,而定义

wchar_t a='中';没有问题。在WinNT.h中有这样的定义:

typedef wchar_t WCHAR.

另外,定义

 wchar_t a='中';

wchar_t b=L'中';都不会出错,但输出的是数字,而且两个数字不同,这有什么区别吗?请知道的朋友赐教。

展开
收起
爱吃鱼的程序员 2020-06-03 15:12:38 591 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    wchar_t是c++标准定义的.WCHAR是MS定义的,你要include<Windows.h>才行.

    输出数字是因为cout的<<方法并没有解码功能,它不知道怎么解码,只能输出数字

    数字不同是因为用L处理的是Unicode,不用L的是ASCII.

    ######

    引用来自“周翼翼”的答案

    wchar_t是c++标准定义的.WCHAR是MS定义的,你要include<Windows.h>才行.

    输出数字是因为cout的<<方法并没有解码功能,它不知道怎么解码,只能输出数字

    数字不同是因为用L处理的是Unicode,不用L的是ASCII.

    恩,谢谢。可是我不明白输出的时候为什么输出的是数字,而不是中文字?
    ######<<不会解码.######

    引用来自“周翼翼”的答案

    wchar_t是c++标准定义的.WCHAR是MS定义的,你要include<Windows.h>才行.

    输出数字是因为cout的<<方法并没有解码功能,它不知道怎么解码,只能输出数字

    数字不同是因为用L处理的是Unicode,不用L的是ASCII.

    非常感谢!
    2020-06-03 16:47:25
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载

相关实验场景

更多