Непоследовательный ввод scanf - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет. Имеюм код вроде
printf("Введите первую переменную");
scanf("%d", number1);
printf("Введите вторую переменную");
scanf("%d", number2);
Если при запросе первой переменной ввести два числа, то второе число уйдет во вторую переменную самопроизвольно. Как это можно ограничить? Необходимо проверить программу на наличие ошибок ввода, а scanf не дает и смещает последовательность ввода, если чисел больше, чем нужно

Решение задачи: «Непоследовательный ввод scanf»

textual
Листинг программы
while(getchar() != '\n');

Объяснение кода листинга программы

  1. В начале программы открывается бесконечный цикл while(getchar() != '\n').
  2. Внутри цикла происходит проверка на чтение символа новой строки '\n'.
  3. Если символ новой строки не был прочитан, то программа продолжает ожидать его ввода.
  4. Если символ новой строки был прочитан, то программа переходит к следующей итерации цикла.
  5. В каждой итерации цикла происходит чтение одного символа из стандартного ввода (клавиатуры).
  6. Чтение символа может быть успешным или неуспешным, в случае неуспешного чтения программа продолжает ожидать ввода символа.
  7. Если ввод символа был успешным, то программа продолжает выполнение следующей итерации цикла.
  8. Если ввод символа был неуспешным, то программа продолжает ожидать ввода символа.
  9. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  10. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.
  11. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  12. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.
  13. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  14. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.
  15. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  16. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.
  17. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  18. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.
  19. Если ввод символа был успешным и символ является символом новой строки '\n', то программа завершает цикл и переходит к следующей части программы.
  20. Если ввод символа был неуспешным и ввод символа новой строки не произошел, то программа продолжает ожидать ввода символа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы