J'essaie donc d'ajouter les noms et prénoms dans une liste doublement liée. J'ai plusieurs fichiers texte de différentes longueurs avec le format "string, string", et j'utilise list> pour stocker mes données.
J'utilise ce code :
typedef std::list< std::pair<string,string> > listPair;
...
list<pair<string, string> > mylist;
ifstream myFile;
myFile.open("20.txt");
pair<string, string> stuff;
while (myFile >> stuff.first >> stuff.second)
{
mylist.push_back(stuff);
}
listPair::iterator iter = mylist.begin();
for(;iter != mylist.end();iter++)
{
string s = (*iter).first;
cout << s << endl;
string c = (*iter).second;
cout << c << endl;
}
Le problème que je rencontre est le suivant : tout d'abord, le dernier élément de la liste n'est pas ajouté. comme si chaque fichier manquait la dernière ligne, donc c'est un peu confus.
De plus, je fais un "mylist.size()" pour m'assurer que tous les noms ont été ajoutés, et cela m'embrouille parce que disons que pour un fichier texte contenant 99 noms, c'est-à-dire 99 lignes de texte, il dira (sans oublier qu'il ne lit que 98 en raison de l'absence de la dernière ligne) que la liste a une taille de 48.
POURQUOI 48 ? Est-ce quelque chose à faire parce que j'ai fait des paires, ce qui n'aurait toujours pas de sens car si ce n'était pas lu en paires, il y aurait en fait le double, puisque les paires sont juste pour prendre le nom et le prénom comme une seule valeur.
Ça me dépasse.
Encore une fois, merci pour toute votre aide !