Q: fichier+buffer (connaitre sa position dans un fichier)
voila mon probleme :
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
|
long p;
char c;
ifstream fichier;
fichier.open("test2.txt");// abc...xyz chaque lettre sur une ligne
c = fichier.get(); //a
c = fichier.get(); //\n
c = fichier.get(); //b
c = fichier.get(); //\n
p = fichier.tellg();
c = fichier.get(); //c
c = fichier.get(); //\n
fichier.seekg(p);
c = fichier.get(); //?
cout << c; |
Le cout affichera un peu ce qu'il veut, alors que je veux qu'il affiche c.
J'aimerais savoir si il etait donc possible de connaitre notre position dans le fichier lors de sa manipulation? Et donc sauvegarder cette donnee pour l'utiliser plus tard affin de revenir a notre ancienne position.
j'ai trouve deux solution pour m'eviter ce probleme, mais j'aimerais quand meme savoir si ce que je demande est possible.
mes deux sol:
Code:
1 2 3
|
char mybuffer [10];
fichier.rdbuf()->pubsetbuf(mybuffer,10); |
on force le buffer a 1
Code:
1 2 3 4 5
|
stringstream fichier;
ifstream _fichier;
_fichier.open("test2.txt");
fichier << _fichier.rdbuf(); |
on charge le fichier en memoire (merci la faq ;) )