Erreur d'ouverture du même fichier plusieurs fois de suite

TheRedman Messages postés 24 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 29 juin 2004 - 29 juin 2004 à 14:19
TheRedman Messages postés 24 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 29 juin 2004 - 29 juin 2004 à 21:26
Je développe mon programme sous linux et cette fonction me pose problème. En fait, j'ai dans un répertoire "utilisateurs" des fichiers dont la structure est la suivante :
le fichier "fichier" contient "fichier pass"
le fichier "dupond" contient "dupond xyz"

Ma fonction ouvre un fichier et renvoie une donnée. Mais elle ne marche que la première fois. Si je l'éxécute de nouveau avec le même fichier mais en demandant une donnée différente, mon programme plante. Pouvez-vous m'aider ?

Voici ma fonction :


string demanderinfo(string utilisateur, int champs){

  string resultat;
  string chemin;
  string donnees[MAXCHAMPS];
  ifstream fichier;
  int j = 1;
 
  chemin = "utilisateurs//" + utilisateur;
  fichier.open(chemin.c_str()); //Ouverture du fichier

  while(j<=MAXCHAMPS){
    fichier >> donnees[j];
    cout << donnees[j];
    j++;
  }
         
  fichier.close();

  resultat = donnees[champs];

  if(resultat.length()==0){ resultat = "erreur"; }
  
  return resultat;
  
}



Qu'est-ce qui ne va pas là dedant ? J'ai pensé peut-être au pointeur de fichier qui resterait à la fin (je dis ça comme ça) mais alors comment on le remonte ?

2 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
29 juin 2004 à 14:31
tu dis que tu regarde une donnée différente, ainsi tu change deux paramètres. Comment peux tu en conclure que c'est parce que c'est la deuxième fois que ca ne marche pas?
0
TheRedman Messages postés 24 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 29 juin 2004
29 juin 2004 à 21:26
Parce qu'en répétant le même appel de fonction 2X de suite, le prog plante. Mais je crois qu'en appelant 2X la fonction avec des fichiers différents, ça marche toujours la première fois, mais jamais la deuxième. C'est curieux...
0