bon ben je vois que t'as pas compris, et que je dois encore un fois recommencé ...
comment c'est foutu un stream ? ben dedans t'as sans doute un descripteur de fichier, un buffer et des drapeaux qui marquent l'état du flux (valide, erreur, fin_de_fichier)
et justement, c'est drapeaux, pour connaitre leur valeur (ou la modifier), on a tout un tas de fonctions dont fait partie feof : eof te renvoie true si le flag eof est positionné.
feof ne détectera __jamais__ la fin de fichier.
while(!f.eof()) ne fonctionnera __jamais__ en effet, le drapeau sera positionné à la première levée à cause d'une tentative de lecture alors que le pointeur de fichier est en bon de course. et non pas, eof sera positionné dès que la fin de fichier est atteinte (i.e après avoir lu le dernier enregistrement du fichier)
maintemant
while(f >> o) s'interrompt des qu'un drapeau d'erreur est positionné.
à toi de savoir si c'est eof en le testant ensuite.
si tu veux retravailler le flux, il faut remettre les drapeaux à zéro avec clear()
Message édité par Taz le 07-04-2004 à 20:10:08