impossible de lire 2 fois de suite un fichier
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.
Code:
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();
} |
Est t'il possible de remédier à ce probleme sans avoir à fermer le fichier et a le rouvrir pour que cela marche?
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