@WalterBlack

Не могу записать значение на СИ?

Здравствуйте. Начинаю учить СИ. Сделал калькулятор и в бесконечном цикле каждый раз спрашиваю ввод определенного символа с клавиатуры в переменную delimetr. Но по какой-то причине программа не дает мне ввести что либо. Срабатывает только один раз, когда цикл только запустился. Но при последующем выполнением цикла ввод не срабатывает. Прошу обьясните пожалуйста в чем может быть проблема?

Код:
#include <stdio.h>

int main() {
    float a, b, result;
    char delimetr;

    while (1) {
        printf("What you're want to do? > ");
        delimetr = getchar();

        printf("\nType first number > ");
        scanf("%f", &a);
        printf("\nType second number > ");
        scanf("%f", &b);

        switch (delimetr) {
            case '+':
                result = a + b;
                break;
            case '-':
                result = a - b;
                break;
            case '*':
                result = a * b;
                break;
            case '/':
                result = a / b;
                break;
        }

        printf("\n\tResult = %.2f\n\n", result);
    }

    return 0;
}
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
@WalterBlack Автор вопроса
Порыв инфу в инете я понял, что надо просто очистить поток после ввода символа этой командой: fflush(stdin); Либо же командой getchar();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@krundetz
1. вставьте default
2. замените getchar на scanf("%с", &delimetr);
3. после каждого scanf вставте сроку scanf("%*[^\n]");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы