2014-01-28 3 views
-2

Мне нужно создать калькулятор, в котором пользователь решает, какой оператор использовать. Код, который у меня есть в настоящее время:Привет, у меня есть проект программирования, и я получаю wierd ошибки при компиляции программы

#include <iostream> 
using namespace std; 
int main() 
{ 
    int i, j, k; 
    char 'op'[5]; 
    cout << "Enter first integer" << endl; 
    cin >> i; 
    cout << "Enter second integer" << endl; 
    cin >> j; 
    cout << "Select the operator" << endl; 
    switch (op) 
    { 
     case '+': 
     i + j = k; 
     cout << k << endl; 
     break; 
     case '-': 
     i - j = k; 
     cout << k << endl; 
     break; 
     case '*': 
     i * j = k; 
     cout << k << endl; 
     break; 
     case '/': 
     i/j = k; 
     cout << k << endl; 
     break; 
     default: 
     cout << "Please enter a valid operator" << endl; 
     break; 
    } 
    return 0; 
} 

В C++ не разрешено ли пользователю указывать оператора? ЕСЛИ это я могу просто создать другой случай переключения.

+1

Это довольно заявление 'символ«оп»[5]'. Я не знаю, что это значит. Чтобы объявить объект/массив в этом случае, вам нужно 'char op [5]'. Думаю, вы определили массив строк символов. Это в значительной степени. 'cin' вам также придется нажать RETURN. Это не простой штрих. Примечание. Вы также будете сравнивать строку/массив с символом в инструкции switch. Вы можете сделать простой взлом и использовать 'switch (op [0])' или использовать 'std :: string' – jiveturkey

+0

Спасибо за ваш ответ, я все еще немного смущен, поскольку меня учили тому, что значения char были определены внутри одного кавычки? При каких обстоятельствах я бы включил одинарные кавычки? – user3242614

+0

Используйте одинарные кавычки, чтобы назначить значение символа для переменной следующим образом: 'char mychar = '+';' – markgz

ответ

1

Вы не читаете op. Вам все равно нужно сделать что-то вроде cin >> op; перед оператором switch().

Кроме того, присвоение значений всегда работает справа налево. Вы не можете сделать i + j = k;

Он должен быть k = i + j;

+2

Кроме того, 'char 'op' [5];' не является допустимым объявлением. Вместо этого используйте 'char op [5];'. Но поскольку вас интересует только одно значение char, полностью удалите синтаксис массива: 'char op;' –

+0

В этом случае, в каких ситуациях я бы включил одиночные кавычки? – user3242614

+1

Никогда. Имена переменных никогда не цитируются. – MrTweek

Смежные вопросы