The code you are showing seems not to be what you are running. First of, your prompt
cout << "Last, First, MI : ";
names things in a different order than the one you are parsing them:
parse >> first >> mi >> last;
And your strings first, mi, last will never appear anywhere. Your are not printing them nor are you returning them to the caller. You just return the raw input line. So that is probably the problem you are noticing.
And, by the way, the use of a debugger would make your life so much easier. Why not listen to what Sergey and the others are telling you. They are absolutely right. And no, I am not friends with them ;-)