Если введена не цифра, то написать, что нужно вводить только цифры и перейти снова к вводу - C (СИ)
Формулировка задачи:
Доброго времени суток. Я новичок в этом деле. Как реализовать функцию: если введена не цифра, то написать, что нужно вводить только цифры и перейти снова к вводу.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char i, counter;
printf("How much do I say \"Hello\" ???\n");
scanf("%c", &counter);
for(i='0'; i<counter; ++i) //повторения цыкла, в зависимости от введенной цифры с клавиатуры;
{
printf("Hello\n");
}
getch();
}Решение задачи: «Если введена не цифра, то написать, что нужно вводить только цифры и перейти снова к вводу»
textual
Листинг программы
#include <stdio.h>
int main()
{ int num, status = 0;
do
{ status = scanf("%d", &num);
if (status != 1)
printf("An integer expected\n");
fflush (stdin);
} while (status != 1);
printf("Your integer: %d", num);
getchar();
return 0;
}
Объяснение кода листинга программы
- Включение стандартной библиотеки
- Объявление переменных: — num (integer) — status (integer), инициализируется значением 0
- Вход в цикл do-while
- Выполнение команды scanf для ввода целого числа в переменную num
- Проверка статуса ввода (1 - успешно, 0 - неуспешно)
- Если статус ввода не равен 1, вывод сообщения об ожидаемом целочисленном вводе
- Очистка буфера ввода с помощью fflush(stdin)
- Повторение шагов 4-7 до тех пор, пока статус ввода не станет равным 1
- Вывод значения переменной num
- Ввод символа для завершения работы программы
- Возврат 0 для завершения программы