Реализовываю постфиксную запись. Ввожу данные через консоль в стринг, а цикл не пробегает по ней должным образом, хотя если вводить данные не в консоли, а напрямую - все работает. Свою реализацию стека и остальных функций упущу, так как дело точно не в них.
Код:
int main()
{
stack one;
string str, temp;
long long temp_2;
cin >> str;
//str = "8 9 + 1 7 - *";
/* если вводить так, все работает и в ответе -102,
если вводить через консоль, то считывается только 8
и соответственно происходит всего одна итерация. */
for (auto i = 0; i < str.size(); i+=2)
{
temp = str[i];
if (!is_operator(temp))
{
one.push_back(static_cast<long long>(stoi(temp)));
}
else
{
long long first = one.back();
one.pop_back();
long long second = one.back();
one.pop_back();
temp_2 = manipulation_with_numbers(temp, first, second);
one.push_back(temp_2);
}
}
cout << one.back() << endl;
}