Решил написать калькулятор, но не получается

В общем-то, решил написать код для калькулятора, но столкнулся с следующей проблемой: после запуска программы,появляется ввод переменных и после ввода двух переменных программа завершается.

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    double x, y;
    char op;
    cin >> x;
    op = getchar();
    cin >> y;
    char plus = '+';
    char minus = '-';
    char div = '/';
    char multiplication = '*';
    if (op == plus) {
        cout << x + y;
    }
    if (op == minus) {
        cout << x - y;
    }
    if (op == div) {
        cout << x * y;
    }
    if (op == multiplication) {
        cout << x / y;
    }
    return 0;
}

Ответы (2 шт):

Автор решения: Nayt

Вместо:

op = getchar();

напишите:

cin >> op;

+У вас перепутаны местами умножение и деление

А вообще вот альтернатива вашего кода:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    double x, y;
    char op;
    double answer;
    cin >> x >> op >> y;
    if (op == '+') {
        answer = x + y;
    }
    else if (op == '-') {
        answer = x - y;
    }
    else if (op == '*') {
        answer = x * y;
    }
    else if (op == '/') {
        answer = x / y;
    }
    cout << answer;
    return 0;
}
→ Ссылка
Автор решения: Тарас Атавин

Она завершается не после ввода, а после вывода результата.

#include <iostream>
int main()
{
 double x, y;
 char op;
 char q;
 do
 {
  std::cin >> x;
  op = getchar();
  std::cin >> y;
  switch (op)
  {
   case '+': std::cout<<(x+y)<<std::endl;
   break;
   case '-': std::cout<<(x-y)<<std::endl;
   break;
   case '*': std::cout<<(x*y)<<std::endl;
   break;
   case '/': std::cout<<(x/y)<<std::endl;
   break;
   default : std::cout<<"error"<<std::endl;
   break;
  }
  std::cout<<"next (y/n)?"<<std::endl;
  do
  {
   q = getchar();
  } while ((q!='y')&&(q!='Y')&&(q!='n')&&(q!='N'));
 } while ((q=='y')||(q=='Y'));
 return 0;
}
→ Ссылка