Как сделать ввод русского текста через оператор std::cin нормальным и без крякозябр?
Если делать по уму, то вам нужно:
1.Исходники сохранять в UTF8. Для строк и строковых констант использовать wchar_t или wstring.
2.При старте программы узнайте кодировку консоли
3.Перед выводом строк на экран преобразуйте ваши широкие строки в кодировку консоли и только после этого выводите. Для
В винде 2 русских кодировки консоли: cp1251 и cp866, при чем cp866 используется по умолчанию. Менять кодировку консоли можно из самой консоли командой chcp. Менять кодировку консоли из программы - дурной тон. 
Пример конвертации с помощью WinAPI можете посмотреть тут.
Полазил где-то еще, решил так:
#include  // в заголовках
// где-то внутри в начале главной функции
SetConsoleOutputCP(1251);
	SetConsoleCP(1251);