Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
838 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++]Pb Fstream : plusieurs fichiers successifs avec la meme variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++]Pb Fstream : plusieurs fichiers successifs avec la meme variable

n°703961
moimoi7
Posté le 20-04-2004 à 15:31:12  profilanswer
 

Voici le code actuel volontairement schématisé

Code :
  1. string a;
  2. f.open("premierfichier",lecture);
  3. while (!f.eof())
  4.    f >> a;
  5. f.close()
  6. f.open("deuxiemefichier",lecture);
  7. while (!f.eof())
  8.    f >> a;
  9. f.close()


Lors de la lecture du deuxieme fichier, il ne rentre pas dans la boucle while (!f.eof()): on peut donc supposer que soit il est déjà à la fin du fichier, soit il ne trouve pas le fichier, ou alors une autre erreur inconnue.
Pourtant si je déclare une deuxieme variable fstream et que je l'utilise pour le deuxieme fichier, ca marche.
Y aurait il un probleme de positionnement ?
Quoi qu'il en soit, je ne parviens pas à corriger l'erreur (c'est pas mortel de créer des variables, mais bon si je peux coder propre je prefere ^^')
Merci d'avance :jap:


Message édité par moimoi7 le 20-04-2004 à 16:28:36
mood
Publicité
Posté le 20-04-2004 à 15:31:12  profilanswer
 

n°703989
Taz
bisounours-codeur
Posté le 20-04-2004 à 15:41:35  profilanswer
 

tu as déjà lu la documentation de eof :o
 
boolay :o
 

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. int main(int argc, char **argv)
  6. {
  7.   ifstream ifs;
  8.   istream *isp=0;
  9.   if(argc!=2)
  10.     {
  11.       cout << "Utilisation de « cin »\n";
  12.       isp=&cin;
  13.     }
  14.   else
  15.     {
  16.       cout << "Utilisation de  " << argv[1] << " \n";
  17.       ifs.open(argv[1]);
  18.       isp=&ifs;
  19.     }
  20.   istream &is(*isp);
  21.  
  22.   if(!is)
  23.     {
  24.       cout << "Impossible d\'ouvrir le flux\n";
  25.       return 1;
  26.     }
  27.   string s;
  28.   cout << "Lecture\n";
  29.   while(getline(is, s))
  30.     {
  31.       cout << s << '\n';
  32.     }
  33.   is.clear();
  34.   if(is.seekg(0, ifstream::beg))
  35.     {
  36.       cout << "Relecture\n";
  37.       while(getline(is, s))
  38. {
  39.   cout << s << '\n';
  40. }
  41.     }
  42.   else
  43.     {
  44.       cout <<  "Ce n'est pas un flux positionnable\n";
  45.     }
  46. }

troisième fois que je poste ce mois-ci :o
- ne jamais utilisé eof saut si on sait ce que ça fait
while(f >> a) {} au lieu de ton ignoble défaillant boucle.
- faire un clear() avant de réutiliser le fichier.
- a oui, je termine par apprendre le C++ et comprendre qu'on  ne peut pas déclarer deux fois une variable.

n°704063
moimoi7
Posté le 20-04-2004 à 16:24:23  profilanswer
 

Merci pour ton aide, ô maitre Taz :o
Euh ceci dit, je me suis apercu en relisant que j'ai recopié le code comme un marsouin aveugle.
Bien sur qu'on peut pas redéclarer une variable...
c'est f.open("xxx",XXX) que j'ai dans mon code...
[meme si ca sert à rien, j'ai modifié pour les archives ^^']


Message édité par moimoi7 le 20-04-2004 à 16:29:36

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++]Pb Fstream : plusieurs fichiers successifs avec la meme variable

 

Sujets relatifs
[JS] Petit pb ! mémorisation d'une variable => RESOLURevenir à la page précédente après plusieurs refresh
Où trouver des fichiers DOS...[BO] Pb : Exportation des plusieurs rapports au format Excel
[Opengl] Charger les fichiers d'un repertoire depuis un menuupload de fichier : taille variable du fichier créé
[FREE/PHP] Upload de fichiers possible ou non ?Une variable dans un chemin d'accès aux objets d'un formulaire
Comment on fait pour stocker une variable dans un fichier (genre ini)?Encore les fichiers
Plus de sujets relatifs à : [C++]Pb Fstream : plusieurs fichiers successifs avec la meme variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR