Probleme avec getline

Signaler
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
Bonjour, je réalise un getline sur un fichier mais, je ne comprends pas, j'ai l'impression que rien n'est lu!!!!

Voici le code:


#include <dirent.h>
#include <list>
#include 
#include <fstream>
#include <string>

void LectureRepertoire(list < pair < string, pair < string , string > > > & ListeDesFichiersDonnee)
{

struct dirent *entree;
DIR *repertoire_entree;
if((repertoire_entree opendir("Data")) NULL)
cout << "Le répertoire n'existe pas !!!" << endl;
else
{
while ((entree = readdir(repertoire_entree))!=NULL)
{if( strcmp(entree->d_name,"..") 0 || strcmp(entree->d_name,".") 0)
continue;
else 
{
ifstream fichier(entree->d_name);
char Date[256];
char NomEtPrenom[256];
fichier.getline(NomEtPrenom,sizeof(NomEtPrenom),'\n');
fichier.getline(Date,sizeof(Date),'\n');
ListeDesFichiersDonnee.push_back(pair < string, pair < string, string > >::pair(
string(entree->d_name),pair<string,string>::pair(std::string(NomEtPrenom),std::string(Date))));
}
}
closedir(repertoire_entree);
}
}

int main()
{
list < pair < string, pair < string , string > > > ListeDesFichiersDonnee;
LectureRepertoire(ListeDesFichiersDonnee);
for(list < pair < string, pair < string , string > > >::const_iterator it = ListeDesFichiersDonnee.begin();
it!=ListeDesFichiersDonnee.end();it++)
{
cout << (*it).first << "\tDate:" << (*it).second.second << "\t\t" << (*it).second.first<< endl;
}
return 0;
}



Et Voici ce que ca m'affiche.
rien.txt Date:
rien2.xt Date:

Alors que j'ai deux lignes dans chacun de mes fichiers.
Je ne comprends pas!!!! D'ou vien le problème ?
J'attends vos réponses.
Merci
(J'utilises BCC55)

1 réponse

Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
C'est bon, j'ai résolu mon problème !!!