Проверка на корректность ввода - C (СИ)

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

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

Люди добрые, помогите мне, неумехе несчастному... короче, есть прога на си:
#include<stdio.h>
#include<stdlib.h>
int pumba(void)
{
int z;
float f1;
printf("\nVvedi chislo--->");
z=scanf("%f", &f1);
printf("%d",z);
(z != 0) ? printf("\nМолодец!"):printf("\nОсёл!");
return 0;
}
int main(void)
{
printf("_____________________________________________________");
int i;
for(i=0;i<5;i++)pumba();
printf("\nArrivedechi!\n");
printf("_____________________________________________________");
exit(0);
}
Оформить её можно поразному, суть не изменится. Программа проверяет ввод: число\буква. Суть в том, что в отдельной программе процедура pumba выполнится идеально, но как только втыкаешь её в цикл, то начинаются жесткие лаги..... Почему так происходит??? Что с этим делать?? вообще, надо создать простенькую фильтрацию входных данных, может это как-то по другому лучше делать??

Решение задачи: «Проверка на корректность ввода»

textual
Листинг программы
char buf[256];
scanf ("%s", buf);

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

  1. Вводится переменная типа char buf[256], которая представляет собой массив символов, инициализированный значением ``.
  2. Далее выполняется функция scanf, которая пытается считать строку из стандартного ввода.
  3. В качестве первого аргумента функции scanf указано %s, что означает, что мы хотим считать строку (sequence of characters).
  4. В качестве второго аргумента функции scanf указано buf, что означает, что мы хотим считать эту строку в массив buf.
  5. Если ввод корректен и пользователь ввел строку, то эта строка будет сохранена в массиве buf.
  6. Если ввод некорректен (например, пользователь ввел символ, который не является буквой или цифрой), то введенные данные не будут считаны, и в массиве buf останется старое значение (которое, вероятно, было установлено ранее).

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


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

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

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