First, you should move the declaration of the output file object outside the while loop. You don't need to construct it and open the file for every line you read from the input file. It should be constructed once and left open while you are reading input.
The line with just "spaces" is unclear. That will likely cause a compile error.
One more thing, this line will likely cause a compile error also :
double abc = p ["abc"];
It looks suspicious but it is hard to know without seeing the definition of the Parser class.