Bonjour à tous, je poste ce message parce que je ne comprends pas ce qui se passe avec tellg() :
je m'explique, je lis un fichier ligne à ligne dont voici une partie :
- fichier "Sample.ini" :
[Section1]
Key1=One1
Key2=Two1
[Section2]
Key1=One2
Key2=Two2
etc...
(Je veux pouvoir définir une sorte de classe pour fichier INI avec un certain nombre de fonction en C++)
et voici le code :
- fichier "main.cpp" :
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
fstream file_r("Sample.ini", ios::in);
char* buffer;
long cursor = -1;
do
{
cursor = file_r.tellg();
cout << cursor << endl;
getch();
file_r >> buffer;
cout << buffer << endl;
}while(!file_r.eof());
file_r.close();
return 1;
}
donc normalement je devrait obtenir au niveau des valeurs de cursor quelque chose comme : 0, 10, 19, 28, 29, 39, 48, 57, etc...
Or là en fonction du nombre de ligne à la fin du sample.ini (j'ai aussi essayé avec des lignes vides '\n'), les valeurs de cursor augmente, la lecture du fichier se faisant du début vers la fin (enfin je crois

!!!) je devrais obtenir la meme suite, or la je me retrouve avec des 0, 112, 121, etc... et les nombres variant avec la taille du fichier. J'avoue que je suis un peu perdu

.
J'attends avec impatience vos réponses pour m'éclairer sur ce problème (en tout cas pour moi !) ou pour m'expliquer comment fonctionne vraiment tellg() parce qu'il n'y a pas beaucoup d'info sur lui sur le net !!!
Merci d'avance !