gpt4 book ai didi

c++ - 为什么我会收到此错误?二进制 '==' : no operator found which takes a left-hand operand of type 'std::string'

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:07 26 4
gpt4 key购买 nike

我不知道为什么会出现此编译错误。我尝试了通常的方法来定义字符串,我也尝试了 std::string 但都没有用。另外我认为我尝试打印函数的方式可能存在问题。

#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <string>

float userInput1() // Defines the inputs from the user
{
using namespace std;
cout << "Please enter first number" << endl;
float number1;
cin >> number1;

return number1;
}

float userInput2() // Defines the inputs from the user
{
using namespace std;
cout << "Please enter second number" << endl;
float number2;
cin >> number2;

return number2;
}

std::string getOperation()
{
using namespace std;
cout<<"Please enter the operator. + - * /" << endl;
std::string userOperator;
cin>>userOperator;

return userOperator;
}

float computeValue(float value1, float value2, std::string operation)
{
using namespace std;

if(operation == '+')
{
cout<< value1 + value2<< endl;
}else if(operation =='-')
{
cout<< value1 - value2<< endl;
}else if(operation =='*')
{
cout<< value1 * value2<< endl;
}else if(operation == '/')
{
cout<< value1 / value2<< endl;
}else
{
cout<< "Please enter: + - * /"<< endl;
}
return 0;
}


int main(){
using namespace std;

computeValue(userInput1(), userInput2(), getOperation());

return 0;
}

最佳答案

您正在使用 == 运算符将 std::stringchar 值进行比较。标准库没有在这两种类型之间定义相等运算符。有效比较列表在这里:http://www.cplusplus.com/reference/string/string/operators/

最简单的方法是使用 " 而不是 'char 值转换为 char*,像这样:

 if(operation == '+')

成为

 if(operation == "+")

关于c++ - 为什么我会收到此错误?二进制 '==' : no operator found which takes a left-hand operand of type 'std::string' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com