Как осуществляется ввод пользователем русских символов из консоли в переменную под Windows?
При использовании gets() программа вылетает с ошибкой. scanf() не выдаёт русский символ. Для теста использую такую программу:
#include <stdio.h>
#include <locale.h>
int main() {
char ch;
setlocale(LC_ALL, "rus");
scanf("%c", &ch);
printf("%c", ch);
return 0;
}
Интересует решение именно в C, а не C++.
gets, хотитеscanf. – Mark Shevchenko Dec 20 '15 at 11:48_setmodeпо ссылке - это решение прежде всего для C, а для C++ оно срабатывает только из-за общего кода работы с консолью :) – Dec 20 '15 at 14:25char, а типwchar_tи поле%Cили%lcвместо%c. – Mark Shevchenko Dec 20 '15 at 17:25chcpвыводит). Какие версии Windows интересуют? Если возникает ошибка, то как её воспроизвести: что ввести в консоле, что в результате видете, что хотите вместо этого видеть? Вот похожий вопрос (но про вывод, а не ввод): добейтесь, чтобы код сwprintf()заработал в вашем окружении, затем попробуйтеwscanf()для ввода. – jfs Dec 20 '15 at 20:01