Запрет на ввод символов в консоли - 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 и проверяет корректность ввода. Если ввод некорректен, выводится сообщение об ошибке. Если ввод корректен, значения сохраняются в соответствующие переменные.