Ma una regressione simile ti è stata imposta?
Voglio dire: perché passare dalle std::string del C++ alle ASCIIZ string del C che però dimostri di non maneggiare correttamente?
A ogni modo prova a inserire:
#include <limits> // per std::numeric_limits<>
...
input.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
come penultima riga in
istream &operator>>(istream &in,Dipendente &d)
e se puoi, nel link del primo post inserisci anche la definizione di Dipendente e un file di input.
(come avevi fatto nell'altro thread).