porté d'une variable vector [Résolu] - C++ - Programmation
Marsh Posté le 16-04-2008 à 12:23:26
while ( (!monFichier.eof()) )
ne fait pas du tout ce que tu crois.
dégage tous ses char*, utilise des string
while (getline(fichier, ligne)) {
// faire semblant de travailler avec ligne
}
Marsh Posté le 16-04-2008 à 12:24:10
et surtout strtok utilise une copie interne, c'est ça qui fait n'importe quoi avec tes char*
Marsh Posté le 16-04-2008 à 12:50:46
j'ai éliminé strtok pour voir si ça venait de là
Code :
|
donc le premier cout dans la boucle fonctionne mais de manière étrange.
en effet monTableau[0][0] affiche toujours le dernier élément rajouté et non toujours le premier.
donc monTableau.push_back(ligne) ne va pas rajouter à la fin du tableau mais à la première place
et une fois sortie du tableau monTableau[0][0] est vide (mais aucune erreur n'apparaît).
le while ( (!monFichier.eof()) ) parcours bien tout le fichier (j'ai affiché chaque ligne lue et il n'y a pas de problème).
Marsh Posté le 16-04-2008 à 13:24:54
en effet l'utilisation de string à la place du char a fait des merveilles et tout marche.
Code :
|
Marsh Posté le 16-04-2008 à 12:07:35
Bonjour,
je dois remplir un tableau à deux dimension de type :
pour se faire j'utilise le code suivant :
le tableau est bien rempli et il m'affiche correctement à l'écran le premier élément de chaque ligne
mais dés que je sors de la boucle et que je fais un
il m'affiche une ligne vide.
quand je demande la taille via
il me retourne la bonne taille (3415 éléments)
de même la taille d'une ligne
retourne la bonne taille (5 éléments).
donc la question est pourquoi je n'ai plus accès à mes élements une fois sortie de ma boucle (je pencherai pour le ligne.clear() mais je ne vois pas comment ne pas l'utiliser )
Message édité par lordankou le 16-04-2008 à 13:25:17