Запрет на ввод букв - C (СИ)
Формулировка задачи:
Я хочу запретить на ввод букв,ибо программа "сломается",как это сделать?.Буду очень признательна
Решение задачи: «Запрет на ввод букв»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
int getdig(char * text);
int main(void)
{
int a;
a=getdig("Please enter a:");
printf("a=%d",a);
return 0;
}
int getdig(char * text)
{
char buf[16];
do
{
printf("%s",text);
scanf("\n%s",buf);
if (!isdigit(buf[0]))
printf("Incorrect!\n");
}while(!isdigit(buf[0]));
return atoi(buf);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с функциями ввода-вывода и обработки символов.
- Определяем функцию
getdig, которая принимает строку и возвращает целое число. - В функции
mainсоздаем переменнуюaтипаintи инициализируем её значением, полученным с помощью функцииgetdig. - Выводим значение переменной
aна экран. - Возвращаем 0, чтобы указать, что программа успешно завершилась.
- В функции
getdigсоздаем буфер, в который будет считываться ввод пользователя. - Запускаем цикл
do, который будет выполняться до тех пор, пока первый символ введенной строки не будет цифрой. - Внутри цикла выводим текст сообщения на экран.
- Считываем строку с помощью функции
scanf, используя шаблон\n%s, где\nуказывает на перевод строки, а%sуказывает на считывание строки. - Проверяем, является ли первый символ введенной строки цифрой, используя функцию
isdigit. - Если первый символ не является цифрой, выводим сообщение об ошибке.
- Повторяем шаги 8-11 до тех пор, пока первый символ введенной строки не будет цифрой.
- Возвращаем значение переменной
bufс помощью функцииatoi, которая преобразует строку в целое число. Список переменных: a- переменная типаintв функцииmain, используемая для хранения значения, полученного с помощью функцииgetdig.buf- переменная типаchar, используемая в функцииgetdigдля хранения введенной пользователем строки. Список функций:getdig- функция, принимающая строку и возвращающая целое число.main- функция, являющаяся точкой входа в программу.printf- функция для вывода сообщений на экран.scanf- функция для считывания ввода пользователя.isdigit- функция, проверяющая, является ли символ цифрой.atoi- функция, преобразующая строку в целое число.