/ C/C++

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

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

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

Без чистки потока

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

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

Используя fflush(stdin)

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

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

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

Вот что у нас получилось:
Используя while (getchar() != '\n');

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

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