lire mot par mot à partir du fichier en C ++

cette fonction devrait lire un fichier word en word
et il fonctionne jusqu'au dernier mot, où l'exécution s'arrête

void readFile(  )
{
    ifstream file;
    file.open ("program.txt");
    string word;
    char x ;
    word.clear();

    while ( ! file.eof() )
    {
        x = file.get();

        while ( x != ' ' )
        {
            word = word + x;
            x = file.get();
        }

            cout<< word <<endl;
            word.clear();

    }
}

tout voir quel est le problème et comment il peut être résolu??

source d'informationauteur M.Tamimi