Проверка на корректность ввода - C (СИ)
Формулировка задачи:
Люди добрые, помогите мне, неумехе несчастному...
короче, есть прога на си:
Оформить её можно поразному, суть не изменится. Программа проверяет ввод: число\буква.
Суть в том, что в отдельной программе процедура pumba выполнится идеально, но как только втыкаешь её в цикл, то начинаются жесткие лаги.....
Почему так происходит???
Что с этим делать??
вообще, надо создать простенькую фильтрацию входных данных, может это как-то по другому лучше делать??
#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); }
Решение задачи: «Проверка на корректность ввода»
textual
Листинг программы
char buf[256]; scanf ("%s", buf);
Объяснение кода листинга программы
- Вводится переменная типа char buf[256], которая представляет собой массив символов, инициализированный значением ``.
- Далее выполняется функция scanf, которая пытается считать строку из стандартного ввода.
- В качестве первого аргумента функции scanf указано
%s
, что означает, что мы хотим считать строку (sequence of characters). - В качестве второго аргумента функции scanf указано buf, что означает, что мы хотим считать эту строку в массив buf.
- Если ввод корректен и пользователь ввел строку, то эта строка будет сохранена в массиве buf.
- Если ввод некорректен (например, пользователь ввел символ, который не является буквой или цифрой), то введенные данные не будут считаны, и в массиве buf останется старое значение (которое, вероятно, было установлено ранее).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д