c++ - 简单的 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;
}
解决方案
details
是string
( std::basic_string<char>
),所以details[i]
也是char
。
char
没有会员。它是整数类型之一,所以比较应该是details[i] == ' '
,而不是details[i].compare(" ") == 0
。
推荐阅读
- c# - WPF DataContext 未通过控件树下的自定义控件转发
- python - 即使我的 HTML 文件在预览时可以显示,Flask 也不显示图像
- google-analytics - 谷歌分析没有收集数据
- amazon-web-services - wget 在 AWS EC2 (Bitnami) 上不可用
- java - 如何将 Json 转换为 Java bean 对象?
- java - 如果 firebase 数据库没有子值,则开始下一个活动
- javascript - 我目前对 onclick 的使用是否有更好的选择?
- django - 初始 Django 迁移时没有这样的表
- javascript - 模块 AppRegistry 未为 Expo 注册可调用模块(调用 runApplication)
- mongodb - 填充嵌套的 ObjectId