Я не могу правильно получить значение вводимого символа. Вот мой код:
#include <stdlib.h>
void main()
{
char buf_in[32] = { 0 };
printf("input: ");
gets_s(buf_in, 32);
for (int i = 0; i < 32; i++)
printf("%02x ", buf_in[i]);
getchar();
}
Я ввожу символ с помощью <alt-254>
, но результат 74 00 00 ...
, а не fe 00 00 ...
.
Вот моя локальная среда: chcp 936
.
И я тестирую в различных локальных средах (кодовая страница ANSI 936):
1. Кодовая страница OEM 936 результат: 74 00 00 ...
2. Кодовая страница OEM 65001 результат: 00 00 00 ...
(странно)
3. Кодовая страница OEM 1250 результат: 3f 00 00 ...
4. OEM кодовая страница 437 результат: 5f 00 00 ...
std::wcin
илиwscanf
из потока Как использовать Unicode в C ++?… - person JosefZ   schedule 22.11.2016