Как очистить stdin? - C (СИ)
Формулировка задачи:
Добрый вечер!
Если ввод соответствует формату, то все работает как надо. Если же нет, то получается как на скриншоте.
Я так понимаю, в этом случае scanf не очищает stdin, fflush не помогает. Возможно ли решить проблему?
P.S. linux
#include <stdio.h> int main () { int n; do { // fflush(stdin); printf("n = "); } while (scanf("%2d", &n) <= 0); return 0; }
Решение задачи: «Как очистить stdin?»
textual
Листинг программы
#include <stdio_ext.h> __fpurge(stdin);
Объяснение кода листинга программы
В данном коде происходит очистка стандартного ввода (stdin). Список действий в коде можно представить следующим образом:
- Включаем заголовочный файл
, который содержит расширенные функции ввода-вывода из стандартной библиотеки C. - Используем функцию __fpurge(stdin), которая
очищает
стандартный ввод (stdin). Таким образом, в данном коде всего два элемента: - Включение заголовочного файла
- 1 - Функция __fpurge(stdin) - 2
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д