这是我的代码。错误是代码的逻辑,但我不知道如何解决。
token get_token() //function created from a class called 'token'
{
token t; //object to access data members
cin >> t.value >> t.kind >> t.value;
return t;
}
vector <token> nums; //vector created to hold values from function
int main()
{
double d = 0;
int i = 0;
while (cin)
{
token t1 = get_token();
nums.push_back(t1);
for (i = 0; i < nums.size(); i++)
{
if (nums[i].kind == '*')
{
d = nums[i - 1].value * nums[i + 1].value;
cout << d << "\n";
nums.clear(); // I use clear() to remove all elements from vector and so 'd' doesn't repeat every value it receives
}
}
}
return 0;
}
该函数被调用,t1
保留char kind
和double value
中的值。
t1
收到的所有款项都进入vector <token> nums
。
向量设法保留char kind
和double value
中的所有信息。
当需要乘以nums[i-1].value * nums[i + 1].value
时,程序将失败。
有人可以看到此错误吗?我不知道是什么导致程序中止。
我相信该错误可能与循环中的if
语句有关,但是我不确定。
对于上下文,我使用的是“编程:使用C ++的原理和实践”(第6章)。