2017-04-19 166 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; 
} 
相关问题