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.

Nom : text.PNG
Affichages : 132
Taille : 1,1 Ko

Voici ma fonction pour lire le fichier texte et stocker les données dans la mémoire.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.

Nom : vector3d.PNG
Affichages : 141
Taille : 7,3 Ko

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.