警告:多字符字符常量[-Wmultichar]

bil*_*pcs 6 c wchar-t

我想要一个希腊字母数组,这就是我所做的:

wchar_t pcletters[30] = {'?' , '?' , '?' , '?' , '?' , '?' , '?' , '?', '?' , '?' , '?' , '?' , '?' , '?','?' , '?' , '?' , '?' , '?' , '?' , '?' , '?' , '?' , '?' , '?', '?' , '?' , '?' , '?' , '?' , '?'} ;
Run Code Online (Sandbox Code Playgroud)

我也包括 <locale.h>并且有一条线setlocale(LC_CTYPE, "") .

但是我得到警告警告:多字符字符常量[-Wmultichar].此外,当我通过执行以下操作检查其中一个字母是否在用户输入中时:

if (userword[i] == pcletters[j]) {//do stuff} 
Run Code Online (Sandbox Code Playgroud)

它似乎不起作用. - 为什么我会收到这个警告? - 有没有办法改变pcletters的方式,以便能够比较userword[i] == pcletters[j]

注意:userword定义如下:wchar_t userword[40].

eca*_*mur 6

使用宽字符文字:

wchar_t pcletters[30] = {L'?' , ...
                         ^
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于您正在编写的字母是单个宽字符的平台; 这应该适用于Windows,其中wchar_t是UCS-2.