With the input "hello world", I get the output, "hello", but not the second word, "world". To me, this looks contrary to every example using istringstream that I've seen... I would expect that "equation" would come out as "world".
The operator >> reads only words separated by white spaces when it is used for entering strings.
So sfter the statement
std::cin >> input;
if you entered "hello world" variable input will contain only "hello".
If you want to read all input data before the new line character you should use standard function std::getline( std::cin, input ). instead of the operator >>.