c++ - 用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++ 没有 operator !==
,你应该使用!=
.
正如@largest-prime-is-463035818 指出的那样,您还应该使用&&
.
if(op != "+" && op != "*" && op != "/" && op != "-")
推荐阅读
- algorithm - 在时间复杂度的背景下,“TDFnlogn”是什么意思?
- neo4j - 如何找到 P1 的一组最低父(或祖先)节点,这些节点切断 P1 和 P2 之间的所有路径
- python - 查找互连行值的列名 - Spark
- android - 如何在android的Chrome自定义选项卡中隐藏完整的工具栏
- listview - Xamarin Forms 的 GroupHeaderTemplate 中的图像触发器绑定不起作用
- c++ - delete[] 是否适用于泛型数组?如果是这样,为什么在它上面使用 std::vector::erase 会导致释放内存时出错
- sqlite - async-await 在 Flutter 上运行不佳
- json - 如何为 Azure 逻辑应用的触发器 JSON 架构中的字段设置默认值?
- spring - spring 4 版本中是否有 jackon jar 文件
- typescript - TypeScript 中的可等待类型