Проверка корректности ввода в калькуляторе - C (СИ)
Формулировка задачи:
Задание простое. Сделать калькулятор (+,-,*,\). Надо, чтобы в одной строке вводилась операция, при этом, если есть лишние символы, выводить ошибку. Так же надо, чтобы программа не учитывала при вводе пробелы. Т.е. 5+5 , 5 + 5 и 5 (много пробелов) + 5 - это одинаковые операции. При вводе, например, 5f + 5c так же должна выводиться ошибка, ровно как и при вводе 5 df+tr 5. Сам калькулятор сделать не составило труда, а вот проверка на ввод у меня не получается. Препод сказал, что надо где то использовать getchar()... Прошу помощи, заранее спасибо.
Решение задачи: «Проверка корректности ввода в калькуляторе»
textual
Листинг программы
#include <stdio.h> #define size 80 int main() { char buf[size], sign; int a,b; fgets(buf, size, stdin); sscanf(buf, "%d%*[ ,a-z,A-Z]%c%*[ ,a-z,A-Z]%d", &a, &sign, &b); printf("%d %c %d = %d", a, sign, b, a+b); getchar(); return 0; }
Объяснение кода листинга программы
- Программа считывает строку из стандартного ввода с помощью функции
fgets()
, сохраняя ее в буфереbuf
. - С помощью функции
sscanf()
из считанной строки извлекаются значения трех переменных:a
,sign
иb
. - Переменная
a
содержит целочисленное значение, которое считывается без учета пробелов и знака. - Переменная
sign
содержит знак, который считывается как символ. - Переменная
b
содержит целочисленное значение, которое считывается после знака как число. - Выводится сообщение, содержащее значения переменных
a
,sign
иb
, а также их сумму. - Программа ожидает ввода символа, чтобы подтвердить корректность выполнения программы.
- В конце программы возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д