Если вводить строку, то так:
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main(void)
{
wchar_t wch[256];
if (! setlocale(LC_ALL, "ru_RU.utf8"))
return 1;
wprintf(L"Введите русские буквы без пробелов: ");
wscanf(L"%s", wch);
wprintf(L"\nЭлемент %s\n", wch);
return 0;
}
а вот с вводом одиночного символа проблемы. Это не выдает ошибок при компиляции, но и не работает:
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main(void)
{
setlocale(LC_ALL, "ru_RU.utf8");
wchar_t wch;
puts("Введите русскую букву:");
wscanf(L"%c", &wch);
wprintf(L"Элемент %c\n", wch);
return 0;
}
Добавлено: 27-07-2016 13:59:58
вот так правильно - нашел тут http://www.cplusplus.com/reference/cwchar/wscanf/
int main(void)
{
setlocale(LC_ALL, "ru_RU.utf8");
wchar_t wch;
wprintf(L"Введите букву:\n");
wscanf(L"%lc", &wch);
wprintf(L"\nбуква: %lc\n", wch);
return 0;
}