Basic Calculator in C++

C++ switch calculator: + - * /. Forget break and + falls into -. Guard / 0.

BeginnerLoop ProgramsExample 14 of 14
basic-calculator.cpp
1#include <iostream>
2using namespace std;
3
4int main() {
5 char op;
6 double num1, num2, result;
7
8 cout << "Enter operator (+, -, *, /): ";
9 cin >> op;
10
11 cout << "Enter two numbers: ";
12 cin >> num1 >> num2;
13
14 switch(op) {
15 case '+':
16 result = num1 + num2;
17 break;
18 case '-':
19 result = num1 - num2;
20 break;
21 case '*':
22 result = num1 * num2;
23 break;
24 case '/':
25 if (num2 != 0) {
26 result = num1 / num2;
27 } else {
28 cout << "Error: Division by zero!" << endl;
29 return 1;
30 }
31 break;
32 default:
33 cout << "Error: Invalid operator!" << endl;
34 return 1;
35 }
36
37 cout << num1 << " " << op << " " << num2 << " = " << result << endl;
38
39 return 0;
40}

Output

Enter operator (+, -, *, /): *
Enter two numbers: 5 4
5 * 4 = 20

What's going on

A tiny C++ calculator: one operator, two numbers, switch. Sample * 5 4 → 5 * 4 = 20.

char op;

double num1, num2, result;

double so 7 / 2 is 3.5, not 3.

cin >> op;

cin >> num1 >> num2;

switch(op) picks a branch by the character.

case '+': add, break;

case '-': subtract, break;

case '*': multiply, break;

case '/': if num2 != 0 divide, else print Error: Division by zero! and return 1.

default: invalid operator, return 1.

Forget break and + falls into - (switch fall-through). That's the bug this program exists to teach.

^ is not power. Type ^ and you hit default.

After a successful case, print num1 op num2 = result.