我在比较wchar_t和十六进制值时遇到问题。
wchar_t c;
FILE *f = fopen("input1.txt", "r");
fwscanf(f, L"%lc", &c); // c is 'ệ'
printf("%d", c == L' x1ec7');
'ệ'是0x1ec7十六进制。但结果是0。如何将wchar_t与十六进制值进行比较?
正确的表示法是L'x1ec7'
,而不是L' x1ec7'
:
#include <stdio.h>
int main() {
wchar_t const c = L'ệ';
printf("%d", c == L'x1ec7'); // prints 1
}