Запрет на ввод символов в консоли - C (СИ)

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

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

Ввобщем всем привет, хотелось бы чтобы вы мне помогли. Нужно реализовать запрет ввода символов в консоле. Вот то, что я смог осилить взяв пример с сайта.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
 
int main ()
{
    setlocale (0, "");
    int i,res;
    
    do
    {
        res=scanf("%d", &a);
        fflush(stdin);
        if (res==0)
        printf("неверный ввод\n");
    }
    while(res!=1);
        _getch();
        return 0;
}
Этот вариант не очень хорош для меня, потому что приходиться для каждого введенного значения делать такую вот операцию, поэтому прошу показать как можно сделать более компактней. Програмист я начинающий много могу не знать поэтому слишком сложные варианты я могу не пронять. Заранее спасибо.

Решение задачи: «Запрет на ввод символов в консоли»

textual
Листинг программы
    for (int i=0;i<6;)
    {
        res=scanf("%f", &A[i]);
        fflush(stdin);
        if (res==0)
        printf("неверный ввод\n");
        else
        {
            i++;
            continue;
        }
    }
    a=A[0];
    b=A[1];
    c=A[2];
    x=A[3];
    xk=A[4];
    dx=A[5];

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

  1. for (int i=0;i<6;) - начинает цикл, который будет выполняться 6 раз
  2. res=scanf(%f, &A[i]); - выполняет функцию scanf для ввода числа в переменную A[i], сохраняет результат в переменную res
  3. fflush(stdin); - очищает буфер ввода, чтобы убрать лишние символы после ввода числа
  4. if (res==0) - проверяет, что функция scanf успешно выполнена и вернула не ноль, иначе выводит сообщение об ошибке
  5. printf(неверный ввод\n); - выводит сообщение об ошибке
  6. else - если предыдущая проверка не сработала (то есть ввод корректен), то выполняется следующий код
  7. i++; - увеличивает значение переменной i на единицу
  8. continue; - пропускает оставшийся код в цикле и начинает следующую итерацию
  9. a=A[0]; - присваивает значение A[0] переменной a
  10. b=A[1]; - присваивает значение A[1] переменной b
  11. c=A[2]; - присваивает значение A[2] переменной c
  12. x=A[3]; - присваивает значение A[3] переменной x
  13. xk=A[4]; - присваивает значение A[4] переменной xk
  14. dx=A[5]; - присваивает значение A[5] переменной dx Код выполняет ввод шести чисел с помощью функции scanf и проверяет корректность ввода. Если ввод некорректен, выводится сообщение об ошибке. Если ввод корректен, значения сохраняются в соответствующие переменные.

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


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

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

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