It isn't a nul, and it isn't mysterious; it's stuff that was in the stream that you didn't take out, commonly a newline. cin.get () is only effective if there's just one. Check out cin.sync () and cin.ignore ().