将 wchar_t 与十六进制值进行比较

Comparing wchar_t with hex value

我在比较 wchar_t 和十六进制值时遇到问题。

wchar_t c;
FILE *f = fopen("input1.txt", "r");
fwscanf(f, L"%lc", &c); // c is 'ệ'
printf("%d", c == L'[=11=]x1ec7'); 

'ệ' 是 0x1ec7 十六进制。但是结果是0。如何比较wchar_t和十六进制值?

正确的写法是L'\x1ec7',不是L'[=12=]x1ec7'

#include <stdio.h>

int main() {
  wchar_t const c = L'ệ';
  printf("%d", c == L'\x1ec7'); // prints 1
}