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

Не работает fflush(stdin) в Visual Studio
Демонстрация ошибки при использовании fflush

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

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

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

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

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

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

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

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

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

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

Используя while (getchar() != '');
Демонстрация корректной работы

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

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