【发布时间】:2018-09-24 14:35:58
【问题描述】:
在我的代码中,我尝试创建大量的 4 个咬字符,其中每个字符都包含一个西里尔字母。
wchar_t OUT_STRING[4] = { L'т',L'л',L'о',L'р' };
这一切正常,我有预期的输出。这只是测试,实际上我需要将元素从字符串转换为与 OUT_STRING 中相同的类型;我尝试使用这样的东西:
wchar_t OUT_STRING[4] = { (wchar_t)'т',L'л',L'о',L'р' };
但它不起作用,在输出中我有一个矩形。
【问题讨论】:
-
"在 wchar_t 上改变它的 char 类型之前的 L" 它不会改变类型。定义
'a'是char文字,而L'a'是wchar_t文字。要了解有关各种类型字符文字的更多信息,请转到 here。 -
x最初是未定义的。您不会在任何地方为x分配初始值。试试static int32_t x = 0; -
好的,但是如何在这种风格上定义'т':(wchar_t)'т'
-
L'т'是 wchar_t 文字字符 т -
@ЧерныйКамень 不同种类的文字有不同的前缀或后缀。
L不执行强制转换,它将下一个序列标识为 wide character literal。