Проверка корректности ввода в калькуляторе - 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;
}

Объяснение кода листинга программы

  1. Программа считывает строку из стандартного ввода с помощью функции fgets(), сохраняя ее в буфере buf.
  2. С помощью функции sscanf() из считанной строки извлекаются значения трех переменных: a, sign и b.
  3. Переменная a содержит целочисленное значение, которое считывается без учета пробелов и знака.
  4. Переменная sign содержит знак, который считывается как символ.
  5. Переменная b содержит целочисленное значение, которое считывается после знака как число.
  6. Выводится сообщение, содержащее значения переменных a, sign и b, а также их сумму.
  7. Программа ожидает ввода символа, чтобы подтвердить корректность выполнения программы.
  8. В конце программы возвращается 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы