@Rastr_0

Как вводить данные в string, дабы цикл пробегал по всей строке?

Реализовываю постфиксную запись. Ввожу данные через консоль в стринг, а цикл не пробегает по ней должным образом, хотя если вводить данные не в консоли, а напрямую - все работает. Свою реализацию стека и остальных функций упущу, так как дело точно не в них.
Код:
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;
}
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@galaxy
std::getline
cin считывает до пробела в очередной агрумент.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы