Lecture et déplacement dans un fichier
Bonjour,
J'ai un petit soucie lors de ma lecture de fichier. Je souhaite pouvoir lire un entier dans mon fichier qui se trouve à la fin.
J'ai donc utilisé la fonction ifstream pour ouvrir le fichier en lecture puis utilisé la fonction seekg() pour pouvoir lire à partir de la fin.
Mon réel problème est de savoir à partir de où commencer la lecture (soit le premier paramètre de la fonction seekg() avec ios::end en second paramètre).
Voiçi mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| int main()
{
ifstream fichier("CATREL", ios::in ); // on ouvre en lecture
if(fichier) // si l'ouverture a fonctionné
{
int entier1;
fichier.seekg(87, ios::end);
fichier>>entier1;
cout << entier1 << endl;
fichier.close();
}
else
cerr << "Impossible d'ouvrir le fichier !" << endl;
system("pause");
return 0;
} |
J'ai pris le nombres de caractères en partant de la fin pour premier paramètre de ma fonction seekg() est-ce une erreur?
J'ai en résultat :
-858993460 (adresse mémoire?)
et voici un exemple du fichier à lire :
Citation:
0411206 20053EUR2E9250114774662310712 310712PREL. FACTURATION 0000000000816O
0711206 20053EUR2 92501147746 310712NOUVEAU SOLDE 0000002546949H
0111206 20053EUR2 99861630874 300712 ** PAS DE MOUVEMENT CE JOUR ** 0000000000000{
0711206 20053EUR2 99861630874 010812 ------------------------------ 0000000000000{
La valeur en rouge est celle que je dois récupérer et comparer à la date système -1.
Merci de vos réponses :)
Emilien.