lecture d' un fichier en binaire
Bonjour,
mon but c'est de pouvoir lire un tableau en binaire à partir d'un fichier " test.txt" et d'afficher ce tableau.
le fichier "test.txt" :
Code:
1 2 3 4 5 6 7
|
4
7
1 0 1 0 1 0 1
1 1 1 1 1 0 1
0 1 0 1 0 1 1
0 0 1 1 0 1 0 |
Pour la definition du tableau j'utlise la struture suivante :
Code:
1 2 3 4 5 6
| typedef struct
{
unsigned int nb_colonnes;
unsigned int nb_lignes;
int *plan; //pointeur sur le tableau de nb_lignes * nb_colonnes
} Un_tab2d; |
Et voic maintenant la fonction que j'ai codé pour cela :
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
| //lecture fichier binaire
Un_tab2d *lire_tab2d_bin(char *nom_fichier){
FILE *in;
Un_tab2d * ptr;
int n;
//ouverture du fichier
if((in = fopen(nom_fichier, "rb")) == NULL){
perror("lire_tab2d_bin");
exit(1);
}
//allocation du tableau ptr->plan
ptr = malloc(sizeof(Un_tab2d));
fscanf(in, "%d", &(ptr->nb_lignes));
fscanf(in, "%d", &(ptr->nb_colonnes));
printf("lignes = %d, colonnes = %d\n", ptr->nb_lignes, ptr->nb_colonnes);
ptr->plan = malloc((ptr->nb_lignes)*(ptr->nb_lignes)*sizeof(int));
n = fread(ptr->plan, sizeof(int), (ptr->nb_lignes)*(ptr->nb_colonnes), in);
printf(" n = %d\n", n);
affiche_tab(ptr);
fclose(in);
return ptr;
} |
et voici le resutat lors de l exécution qui n'a rien à voir avec ce que j'ai voulu faire :D :
Code:
1 2 3 4 5 6 7
|
lignes = 4, colonnes = 7
n = 14
824193290 824193312 824193312 822751520 824193056 824193056 824193056
807416074 807416096 807416096 822751520 824193312 824193312 824193312
2592 0 0 134089 0 0 0
0 0 0 0 0 0 0 |
Alors s'il vous plait n'hésiter pas à me donner vos suggestions.
Je vous remercie pour tout aide.