Pb de gestion de fichier avec fstream

Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010 - 3 juil. 2003 à 09:09
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010 - 3 juil. 2003 à 22:18
Salut,
J'ai deux problème distinct avec fstream,

Le premier est que lorsque j'arrive à la fin d'un fichier, je ne peut plus revenir plus haut dans ce dernier, par exemple:

ifstream file("test.txt");
char ligne[0xFF];
while (file.getline(ligne,0xFF))
printf("%s\n",ligne);
file.seekg(0);
while (file.getline(ligne,0xFF))
printf("%s\n",ligne);
file.close();

ne m'affichera qu'une fois le fichier et non pas 2 comme je le voudrais.
Pourquoi ? et comment y remédier autrement qu'en fermant et en réouvrant le fichier ?

Sinon mon dexième problème est que je fixe la lecture du fichier à une endroit, et il est décalé de deux octets je ne sait pas pourquoi (il me vire donc les 2 première lettres de ma phrase). Exemple:

int start_pos = 17;
fbub.seekg(start_pos);
cout << start_pos << " - " << fbub.tellg() << endl;

ce code m'affichera '17 - 19'

Pourquoi ? et comment résoudre ce problème ???

Merci beacoup pour vont réponses qui me seront je pense très profitable,

Bub325
Le codeur pas comme tout le monde
8-)

4 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
3 juil. 2003 à 10:27
Oui mais pourquoi fais tu seek(0) et non seek(-sizeOfFIle) ?

Car avec le vrais fonction fseek, tu fais :
fseek(fichier,0,SEEK_SET);

:-p :sleepy) :shy) :sleepy) :-p
0
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010
3 juil. 2003 à 20:45
Et bien j'ai mis 0 pour revenir au début du fichier, mais j'aurais pu mettre 4 - 17 ect... tout dépend de l'endroit où je veut retourner, mais le prtoblème reste le même, une fois que j'ai atteint la fin du fichier je ne peut plus relire quelque partie que ce soit dans le fichier.
Bub325
Le codeur pas comme tout le monde
8-)
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
3 juil. 2003 à 20:51
Fias alors :
fseek(fichier,0,SEEK_SET);

ca marche !
:-p :sleepy) :shy) :sleepy) :-p
0
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010
3 juil. 2003 à 22:18
Mais c'est une commande C à utiliser avec FILE et non fstream. Je ne peut donc pas l'utiliser.

Bub325
Le codeur pas comme tout le monde
8-)
0
Rejoignez-nous