Personalmente ho preferito deprecare gli >> e acquisisco ogni input da tastiera e/o file tramite std::getline() e poi convertire, se necessario, con std::istringstream.
Almeno non do di matto con i problemi riscontrati dall'OP.