Так что, похоже, это проблема организации кода. Вы просто не используете переменные в своей программе так, чтобы это могло сработать. Вы читаете файл в одну переменную, но используете совершенно другую переменную, чтобы попытаться решить проблему.
Это то, что вам нужно сделать, прочитать выражение инфикса в переменную main, затем вы передать эту переменную в качестве параметра в функцию, которая вычисляет выражение постфикса. Вот так
infile >> getcontent;
cout << getcontent << endl;
convertToPostfix(getcontext);
Тогда convertToPostfix
должна быть функцией, которая выглядит следующим образом
void convertToPostfix(const std::string& infx) {
...
}
Нет необходимости иметь класс с именем infixToPostfix
, просто пишите функции для выполнения работа, а не классы.
И вам действительно нужно прочитать о том, как писать функции, как передавать параметры в функции и возвращать значения из функций. Это очень базовый навык c. На данный момент вы явно не понимаете этого, но это абсолютно необходимо.
Ваш код также включает в себя множество расширенных функций, таких как классы и шаблоны, которые не нужны для этой задачи и в любом случае не должны не будет использоваться, если вы еще не освоили основы.
Я предполагаю, что вы скопировали функцию convertToPostfix
откуда-то. Вы должны знать, что это не совсем решает проблему, которую вам дали. Формат строк, которые он обрабатывает, немного отличается от формата строк, которые у вас есть. Интересно, видите ли вы разницу?