将 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
}
我在比较 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
}