2017-04-19 188 views
-1

我是C++的新手,並決定使用其他編程語言的知識。我決定做一個簡單的計算器來快速計算,但有些事情是關閉的。我想只允許某些符號的操作,但它一直想出這些錯誤:C++錯誤:錯誤:期望'||'之前的主表達式令牌

12:19: error: expected primary-expression before '||' token 
12:22: error: expected primary-expression before '/' token 
12:24: error: expected primary-expression before '||' token 
12:29: error: expected primary-expression before '||' token 
12:33: error: expected primary-expression before ')' token 

這裏是我的代碼:

// Example program 
#include <iostream> 
#include <string> 

int main() 
{ 
char symbol; 
int number1; 
int number2; 
    std::cout << "Enter an operator "; 
    std::cin >> symbol; 
    if (symbol != + ||/|| * || -){ 
    std::cout << "That isn't an operator, please fix it."; 
    std::cin >> symbol; 
    } 
    std::cout << "Choose a number "; 
    std::cin >> number1; 
    std::cout << "Choose a second number "; 
    std::cin >> number2; 
    if (symbol == '+'){ 
    std::cout << number1 + number2; 
} 
if (symbol == '*'){ 
    std::cout << number1 * number2; 

    } 
    if (symbol == '-'){ 
     std::cout << number1 - number2; 
     } 
     if(symbol == '/'){ 
      std::cout << number1/number2; 
      } 
} 
+4

'if(symbol!= + ||/|| * || - )' - 這是什麼意思? – AnT

+0

我認爲你需要這個,如果 ( 符號= '+' || 符號= '/' || 符號= '*' || 符號=!!!! ' - ' ) –

+0

怎麼回事你知道'symbol =='+''在某些地方,但你不知道爲什麼'symbol == +'在另一個地方是錯誤的?這不是OR操作員的工作方式。你應該在網上找到一個教程,而不是隻是衝擊鍵和希望工作。 –

回答

1

首先,正確的語法是

if (symbol != '+' || symbol != '/' || symbol != '*' || symbol != '-') 

但那麼,這if是無用的,因爲你的symbol不能同時等於所有這些。所以它相當於if (true)

你想&&(而不是)||(或)並循環,直到用戶鍵入一個操作符;類似於:

std::cin >> symbol; 
while (symbol != '+' && symbol != '/' && symbol != '*' && symbol != '-') { 
    std::cout << "That isn't an operator, please fix it."; 
    std::cin >> symbol; 
} 
相關問題