C++ c++;std::内存位置超出范围
我正在尝试制作一个基本的计算器,用户可以输入两个数字和一个运算符,这样计算就可以了。我不知道为什么我会得到这个错误,我不完全确定这个错误意味着什么,因为我是新的C++只有一些java的经验。p> 以下是我所拥有的: 计算hC++ c++;std::内存位置超出范围,c++,C++,我正在尝试制作一个基本的计算器,用户可以输入两个数字和一个运算符,这样计算就可以了。我不知道为什么我会得到这个错误,我不完全确定这个错误意味着什么,因为我是新的C++只有一些java的经验。p> 以下是我所拥有的: 计算h #include <iostream> using namespace std; class Calculation{ private: int x; int y; public: Calculation(); int calc
#include <iostream>
using namespace std;
class Calculation{
private:
int x;
int y;
public:
Calculation();
int calculateAddition(int, int);
int calculateSubtraction(int, int);
int calculateMultiplication(int, int);
int calculateDivision(int, int);
};
Main.cpp
#include <iostream>
#include <sstream>
#include <string>
#include "Calculation.h"
using namespace std;
int main(){
Calculation calc;
int i = 0;
char k;
int x;
int y;
char j = 'a';
string inputCalc;
stringstream str;
while(j != 'q'){
cout << "1. Make Calculation" << endl;
cout << "2. Quit" << endl;
cin >> i;
if(i == 1){
cout << "Input calculation:" << endl;
cin >> inputCalc;
k = inputCalc.at(2);
str << inputCalc.at(1);
str >> x;
str << inputCalc.at(3);
str >> y;
if (k == '+'){
calc.calculateAddition(x, y);
}
else if (k == '-'){
calc.calculateSubtraction(x, y);
}
else if (k == '*'){
calc.calculateMultiplication(x, y);
}
else if (k == '/'){
calc.calculateDivision(x, y);
}
else{
}
}
else if(i == 2){
j = 'q';
}
else{
cout << "Invalid input. Please enter 1 or 2." << endl;
}
}
}
#包括
#包括
#包括
#包括“Calculation.h”
使用名称空间std;
int main(){
计算计算;
int i=0;
chark;
int x;
int-y;
char j='a';
字符串输入;
stringstream str;
而(j!=“q”){
库蒂;
如果(k=='+'){
计算条件(x,y);
}
else如果(k='-'){
计算牵引力(x,y);
}
else如果(k=='*'){
计算乘法(x,y);
}
else如果(k=='/')){
计算视力(x,y);
}
否则{
}
}
else如果(i==2){
j=‘q’;
}
否则{
不能假设cin>>inputCalc
中的输入为'1+2'。input.at(0)='1'
,input.at(1)=='+'
和input.at(2)==2
。input.at(3)超出范围。我认为一些语句中出现了这样的错误
str << inputCalc.at(3);
str
str << inputCalc.at(3);