I totally brainfarted and put this->preDigits.size() in the for loop comparison clause, which gets re-evaluated every loop. So it was leaving digits on the stack that should have been printed, causing errors both immediately and down the line.
Not working correctly yet, errors when handling certain predigits