Remplir un tableau à partir d'un fichier
Bonjour,
J'ai un fichier qui contient
>>
//commentaire
abba*
a b c e
9 2 << taille du tableau
2 2
2 1
1 2
2 2
2 3
4 5
5 1
4 7
8 6
1 3 4
<<
La 4ème ligne représente la taille du tableau
Le reste des lignes du ligne n°5 jusqu'à ligne n°13 sont
les valeurs à remplir dans le tableau
Je veux lire ces entiers et les mettre dans le tableau,
mais j'ai pas arriver et surtout mettre les bonnes boucles
convenablement pour cette opération?
Je ne sais pas pourquoi la première valeur est valide mais les autres
sont comme des emplaements en 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| #include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fichier = NULL;
fichier = fopen("d:\\a.txt", "r");
if (fichier != NULL)
{
char ligne[32];
int nb_line_tab,
nb_col_tab,nb_line_fichier = 0,
**tab_t;
while(nb_line_fichier<4)
{
nb_line_fichier++;
fgets (ligne, sizeof ligne, fichier);
}
nb_line_tab=ligne[0] - '0';
nb_col_tab=ligne[2] - '0';
int j;
// allocation dynamique de tab_t
int tab[10];
tab_t = malloc(nb_line_tab* sizeof(int*));
for(j=0;j<nb_line_tab;j++)
tab_t[j]=malloc(nb_col_tab * sizeof(int));
printf("\nallocation tab des trans");
//fin allocation
printf("\ndimension de tab des trans [%d][%d] ", nb_line_tab,nb_col_tab);
//operation change v2.3
puts("");int cpt,entier;
cpt=0; int cpt2;
for(cpt2=0;cpt2<nb_line_tab;cpt2++)
{
while(cpt<nb_col_tab )
{
fscanf(fichier, "%d ",&entier);
tab_t[cpt][cpt2]=entier;cpt++;
}
fseek(fichier, -1, SEEK_CUR);
for (cpt=0; cpt<nb_col_tab;cpt++)
for(cpt2=0;cpt2<nb_line_tab;cpt2++)
printf("%d\n",tab_t[cpt][cpt2]);
}
fclose(fichier);
}
return 0;
} |
S'il vous plaît vous pouvez m'aidez corriger ce code,
ou vous pouvez me renseigner sur une autre solution.
Merci d'avance.
Cordialement,
alibm