Bonsoir a tous
Voila j'ai un fichier texte sur lequel j'effectue des traitements.
Une partie de mon programme pose probleme.
En fait la fonction affiche() ne peut s'effectuer 2 fois de suite correctement.La seconde n'affiche rien ce qui est normal.
Est t'il possible de remédier à ce probleme sans avoir à fermer le fichier et a le rouvrir pour que cela marche?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include<fstream> using namespace std; fstream f ("personnel.txt",f.in | f.out ); void affiche(){ char *courant; while(f.getline(courant,100)) { cout<<courant<< " nbre de caract. lus: "; int n=f.gcount();cout<<n<<endl; } // ici un 'f.clear();' fait buguer le programme en // annonçant que l'exe doit fermer!!! cout<<"etat: "<<f.rdstate()<<endl;// affiche 6 donc failbit // et eofbit activés ce qui est normal f.seekg(0);cout<<"position pointeur: "<<f.tellg()<<endl;// affiche -1 } main() { affiche(); //ok pas de probleme affiche(); //probleme évidemment car good()==false donc pas d'entree ds le while f.close(); }
Comment réactiver goodbit a la fin de affiche() etant donné que je ne peux pas compter sur l'instruction clear() pour le faire???!!
D'avance merci
Partager