2 pièce(s) jointe(s)
Manipulation d'un vecteur 3D
Bonjour,
Afin de réaliser mon projet, j'essaie de stocker les données d'un fichier texte dans un vecteur 3d mais je n'y arrive pas tout à fait.
Voici le format de mon fichier texte.
Pièce jointe 204670
Voici ma fonction pour lire le fichier texte et stocker les données dans la mémoire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
void lectureFichier(ifstream& fichier, vector< vector< vector<string> > >& gram){
// on enregistre premier caractere du fichier texte dans une variable temporaire
string temp;
fichier >> temp;
// tant que ce n'est pas la fin du fichier
while(!fichier.eof()){
// on crée un nouveau vecteur 2d
vector< vector<string> > ligne;
// tant que ce n'est pas la fin de la ligne
while(temp != "-1"){
vector<string> terme;
while(temp != "|" && temp != "=" && temp != "-1"){
terme.push_back(temp);
fichier >> temp;
}
// on stocke le caractere dans le vecteur appelé ligne
ligne.push_back(terme);
// on stocke prochain caractere dans la variable
fichier >> temp;
}
// on ajoute le vecteur ligne dans le vecteur gram
gram.push_back(ligne);
// on stocke prochain caractere dans la variable
fichier >> temp;
}
} |
Enfin, je voudrais que les donées soient stockées ainsi dans mon vecteur.
Pièce jointe 204672
Cependant, quand j'exécute mon code, tous les données sont stockées dans un seule indice "i", c'est-à-dire que le T qui est censé être dans gram[1][0][0], se retrouve dans gram[0][3][0].
Ayant vérifié à plusieurs reprises mon code, je ne vois pas d'où vient l'erreur.
Merci d'avance pour vos réponses. :D