Не работает fflush(stdin) в Visual Studio

Как заставить работать функцию fflush(stdin) в Visual Studio 2017/2015/2013/2010

До поры до времени для того чтобы чистить поток использовалась функция fflush(stdin).
Что произойдет если мы попытаемся ввести char не очищая поток:

Демонстрация ошибки без использования fflush

Второй scanf пропускается не запрашивая ввода с клавиатуры.

Тогда попробуем очистить поток с помощью функции fflush(stdin) :

Демонстрация ошибки с использованием fflush

Опять же второй scanf пропускается.

Для корректной очистки потока вместо fflush(stdin) используем конструкцию:

while (getchar() != '\n');

Вот что у нас получилось:

Демонстрация корректной работы

Теперь поток очищается и второй scanf не пропускается.

Видео по теме: