[IFSTREAM] EOF ne trouve jamais la fin
J'ai le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
oid Fichier::LireFichier()
{
string s;
int num;
char a;
ifstream lecture;
s="";
num=1;
lecture.open(nomFichier,ios::in);
lecture.get(a);
while(!lecture.eof()){
s="";
while(a != ' '){
if(isalnum(a) != 0 || a=='_' || a=='-')
{
cout << a << endl;
s+=a;
lecture.get(a);
}
else
{
lecture.get(a);
}
}
if(a=='\n')
{
num++;
cout <<"TOTO";
}
lecture.get(a);
}
lecture.close();
} |
Je lis un fichier contenant les mots "CECI EST UN TEST".
Il affiche
C
E
C
I
E
S
T
U
N
T
E
S
T
T
T
...
Et il boucle à l'infini sur le T.
Il semblerait donc qu'il ne trouve pas le EOF.
En cherchant sur google, j'ai trouvé plusieurs topic concernant le même problème (certains parlent de comportement imprévésible de EOF), mais pas de solution.
Peut être pourrez vous m'aider.
Merci
MiKL