Защита от пустого ввода - C (СИ)
Формулировка задачи:
Привет всем! Написал программку рассчитывающую возрастные группы(такое было задание). Прога работает, реализована защита от ввода отрицательных значений и если значение равно нулю. Как реализовать защиту от пустого ввода, то есть, если в строке ввода просто нажата клавиша "Enter"?
#include <stdio.h> /* * 1. Напишите программу, которая будет спрашивать возраст пользователя. Если пользователь введет отрицательное или нулевое число, программа выдаст сообщение об ошибке. В противном случае программа проверит возраст и определит возрастную группу: Если возраст <=11, тогда пользователь - ребенок Если возраст >11 но меньше 18 - подросток Если возраст >=18 - взрослый И выведет соответствующее сообщение на экран, например: Ваша возрастная группа - дети Ваша возрастная группа - подростки Ваша возрастная группа - взрослые */ int main() { // Переменные int age = 0; printf("Введите Ваш возраст:"); printf("\n"); // Ввод данных scanf("%i", &age); // Обработка ввода возраста if(age > 0) { printf("Ваша возрастная группа - "); if(age > 0 && age <= 11) { printf("дети"); } else if(age > 11 && age < 18) { printf("подростки"); } else if(age >= 18) { printf("взрослые"); } } else { printf("Ошибка! Введите положительное число, больше ноля..."); } return 0; }
Решение задачи: «Защита от пустого ввода»
textual
Листинг программы
int n; char buf[32]; fgets(buf, 32, stdin); if(sscanf(buf, "%d", &n) != 1) printf("Error");
Объяснение кода листинга программы
- Объявлены две переменные:
n
типа int иbuf
типа char с размером 32 символа. - В строке
fgets(buf, 32, stdin);
считывается строка из стандартного ввода (клавиатуры) в буферbuf
. - Если введенная строка пустая или содержит некорректный формат для числа, то функция
sscanf
возвращает значение меньше 1. - Если введенная строка корректно содержит число, то число преобразуется в формат int и сохраняется в переменной
n
. - Если функция
sscanf
вернула значение меньше 1, то выводится сообщение об ошибкеError
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д