Bonjour à tous et à toutes,
Je rencontre un problème dans la subsistance de valeurs dans mon tableau.
Voici le code:
Ma fonction qui stocke dans mon tableau le contenu de mon fichier. Pour vous donnez plus d'informations mon fichier est un fichier.txt dans lequel est stocké des chaines de caractères comme cela:
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 void tabFichier( char *Fichier, char ***chaine, int nbColonne, int nbLigne ){ FILE *f; f = fopen(Fichier,"rt"); char *c = malloc(1000 * sizeof(char)); char **T = malloc(nbColonne * sizeof(char *)); if(f !=NULL){ int Col = nbColonne; int Lig = nbLigne; fscanf(f,"%s",c); fscanf(f,"%s",c); for(int i=0; i<Lig; i++){ fscanf(f,"%s",c); decoupeChaine(c,T,Col); chaine[i] = T; } } else { perror("ErroR\n"); } fclose(f); }
A;B;C;D
test;TEST;O;P
Code de la fonction decoupeChaine:
Quand je printf dans la boucle for le contenu de mon tableau est bon et correspond bien au contenu de mon fichier dans la forme souhaité. Mon problème c'est qu'une fois sortis de cette boucle quand je printf le contenu du tableau j'obtiens pour les premières ligne de mon tableau n'importe quoi seul ma dernière ligne est juste. J'ai déjà essayé de solutionner le problème sans succès avant toutes mes lignes étaient identiques à la dernière. J'ai lu beaucoup d'informations sur internet mais soit je en comprenais pas soit ça ne s'appliquer pas dans mon cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void decoupeChaine(char *entree, char **sortie, int nbCol){ sortie[0] = strtok (entree,";"); for (int j = 1; j < nbCol; j++) { sortie[j] = strtok (NULL, ";"); } }
Si vous pouviez m'aider s'il vous plaît![]()
Je vous en remercie par avance !
Cordialement,
Seltux
Partager