I can't really tell what your code is supposed to be doing; please forgive me. For testing purposes I changed myFile to cin so I could manually enter the input. It seemed to work as expected, stopping whenever it reached a '&' character.
One thing that I noticed was that you're doing something very, very BAD. Whenever you copy a C++ string with strcp(), you never check to make sure that the length of it is shorter than the size of the C string you're trying to copy into. Ideally you would dynamically allocate the memory as Ancient Dragon suggested in the previous thread.
Or just check that line.size() is not too large. Anyway, to prove my point, I got your program to crash as a result of inputting large strings. So keep that in mind, as that may have been what was screwing up your program,
By the way, you never mentioned what did actually happen when you ran it. Care to say so we know exactly what you're having problems with?
Oh, I just noticed something!
PCoursCourant->suivant = new Cours; Where in that loop do you actually advance the pointer to the node that you allocate? You're just reallocating the same pointer, causing memory leaks for sure.