首页 > 解决方案 > 用c ++比较两个字符串的问题

问题描述

我最近一直在学习 c++,这是我制作的一个简单的计算器应用程序,当我收到一个运算符并开始验证它是 (+, -, *,) 之一时,问题就来了。但它似乎不起作用

    if(op != "+" || op != "*" || op != "/" || op != "-"){
      std::cerr << "Error Unsupported Operator";
      return 0;
    };

#include <cstdlib>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>

// km = 1.6 * miles
// Enter miles: 5

int main(int argc, char** argv) {

    std::string num1, num2, op;
    double dNum1, dNum2;
    std::cout << "Enter first num: ";
    getline(std::cin, num1);
    std::cout << "Enter Operator: ";
    getline(std::cin, op);  
    if(op != "+" || op != "*" || op != "/" || op != "-"){
      std::cerr << "Error Unsupported Operator";
      return 0;
    };
    std::cout << "Enter second num: ";
    getline(std::cin, num2);
    dNum1 = std::stod(num1);   
    dNum2 = std::stod(num2);

    double result;
    
    if      (op == "+") result = dNum1 + dNum2;
    else if (op == "-") result = dNum1 - dNum2;
    else if (op == "*") result =  dNum1 * dNum2;  
    else if (op == "/") result =   dNum1 / dNum2;  

    // std::cout << dNum1 << " " << op << " " << dNum2 << " = " << result << "\n";
    printf("%.1f %s %.1f = %.1f", dNum1 , op ,dNum2, result);

    return 0;
}

标签: c++

解决方案


C++ 没有 operator !==,你应该使用!=.

正如@largest-prime-is-463035818 指出的那样,您还应该使用&&.

if(op != "+" && op != "*" && op != "/" && op != "-")

推荐阅读