首页 > 解决方案 > 简单的 C++ 计算器 -> 错误:在 details.std 中请求成员“比较”

问题描述

我对 java 有一些经验,但这是我第一次尝试编写一些 c++ 代码。我从一个简单的计算器开始,但收到错误“错误:在 details.std 中请求成员'比较'”。这可能是一个简单的解决方法,但如果你能伸出援手,将不胜感激。

#include <iostream>
#include<string>
using namespace std;

string action();

int main(){
    string details = action();
    string action = "";
    string num1 = "";
    string num2 = "";

    for(int i=0; i<details.length(); i++){
        int pos = 0;
        if(details[i].compare(" ") == 0){
            pos++;
            continue;
        }
        if(pos == 0){
            action += details[i];
        }else if(pos == 1){
            num1 += details[i];
        }else if(pos == 2){
            num2 += details[i];
        }
    }

    if(action.compare("M") == 0){
        cout << stoi(num1)*stoi(num2);
    }else if(action.compare("A") == 0){
        cout << stoi(num1)+stoi(num2);
    }else if(action.compare("S") == 0){
        cout << stoi(num1)-stoi(num2);
    }else if(action.compare("D") == 0){
        cout << stoi(num1)/stoi(num2);
    }

return 0;
}

string action(){
    string returnVal;
    string act;
    string num1;
    string num2;
    cout << "Do you wish to (M)ultiply, (A)dd, (D)ivide or (S)ubtract?\n";
    cin >> act;
    cout << "First Number:\n";
    cin >> num1;
    cout << "Second Number:\n";
    cin >> num2;
    returnVal = act << " " << num1 << " " << num2;
    return returnVal;
}

标签: c++

解决方案


detailsstring( std::basic_string<char>),所以details[i]也是char

char没有会员。它是整数类型之一,所以比较应该是details[i] == ' ',而不是details[i].compare(" ") == 0


推荐阅读