Запрет на ввод символов в консоли - 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];
Объяснение кода листинга программы
for (int i=0;i<6;)
- начинает цикл, который будет выполняться 6 разres=scanf(
%f, &A[i]);
- выполняет функцию scanf для ввода числа в переменную A[i], сохраняет результат в переменную resfflush(stdin);
- очищает буфер ввода, чтобы убрать лишние символы после ввода числаif (res==0)
- проверяет, что функция scanf успешно выполнена и вернула не ноль, иначе выводит сообщение об ошибкеprintf(
неверный ввод\n);
- выводит сообщение об ошибкеelse
- если предыдущая проверка не сработала (то есть ввод корректен), то выполняется следующий кодi++;
- увеличивает значение переменной i на единицуcontinue;
- пропускает оставшийся код в цикле и начинает следующую итерациюa=A[0];
- присваивает значение A[0] переменной ab=A[1];
- присваивает значение A[1] переменной bc=A[2];
- присваивает значение A[2] переменной cx=A[3];
- присваивает значение A[3] переменной xxk=A[4];
- присваивает значение A[4] переменной xkdx=A[5];
- присваивает значение A[5] переменной dx Код выполняет ввод шести чисел с помощью функции scanf и проверяет корректность ввода. Если ввод некорректен, выводится сообщение об ошибке. Если ввод корректен, значения сохраняются в соответствующие переменные.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д