VC++: parser и string
#include "stdafx.h"
#include
#include
using namespace std;
string Entering;
int Entering1(){
char s = System::Convert::ToChar(Entering);
return s;}
float number()
{
int res = 0;
for (;;)
{
char c = cin.get();
if (c >= '0' && c <= '9')
res = res * 10 + c - '0';
else
{
cin.putback(c);
return res;
}
}
}
float expr();
float skobki()
{
char c = cin.get();
if (c == '(')
{
float x = expr();
cin.get();
return x;
}
else
{
cin.putback(c);
return number();
}
}
float factor()
{
float x = skobki();
for (;;)
{
char c = cin.get();
switch (c)
{
case '*':
x *= skobki();
break;
case '/':
x /= skobki();
break;
default:
cin.putback(c);
return x;
}
}
}
float expr()
{
float x = factor();
for (;;)
{
char c = cin.get();
switch (c)
{
case '+':
x += factor();
break;
case '-':
x -= factor();
break;
default:
cin.putback(c);
return x;
}
}
}
float Solvation ( string Entering, float Number )
{
Entering1 ();
Number = expr();
return Number ;
}
Это часть кода, другая часть копирует данные из textbox и добавляет в string Entering, а теперь мне нужно, чтоб парсер символы из стринга считывал. Перепробывал все, мне знакомые варианты (но я новичок, и почти ничего не знаю, хотя этот код я более менее понимаю, хотя и путаюсь от функции к функции) , не получилось. Так как это самый понятный парсер, из всех найденных мною в интернете (нашел около 3ёх работающих) , хотелось бы его и оставить.
А теперь суть, как можно сделать так, чтобы символы считывались из стринга? Желательно с пояснениями, и готовностью удержать глаза от похода на лоб, по причине возможного вопроса с моей стороны) ) так как сам я новичок.
П. С. Впринципе можно и другой парсер, но с пояснениями, что называется для тупых))
Точка входа float solvation ( string Entering, float Number ).
Функция Ентеринг1, это отделенная область манипуляций со стрингом, в последний раз пытался практически прошибить стену, стринг в чар конвертировать.
Что такое Стек? Если это отступы, то онипросто не скопировались.