Lire et écrire dans un fichier binaire
Mon programme remplis mal le fichier, lorsque j'essaye de le lire et le mettre dans un maillon, il me sort n'importe quoi!!!
Voici mon code :
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 69 70 71 72
| #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
typedef struct Voiture //Définition de la structure Voiture
{
char marque[20];
char modele[20];
char puissance[3];
struct Voiture *suivant;
}Voiture;
void Creer (Voiture **p);
void Ecrire (Voiture *p);
void Lecture (void);
int main(void)
{
Voiture *tete=NULL;
Creer (&tete);
Ecrire(tete);
Lecture();
//system("cls");
// printf("%s\n",tete->marque);
//printf("%s\n",tete->suivant->marque);
free(tete); tete=NULL; /* il faut liberer la memoire. C'est tres imporant */
return EXIT_SUCCESS;
}
void Creer (Voiture **p) //Définition de la fonction Creer qui est de type Voiture
{
Voiture *voit=malloc(sizeof *voit);
if(voit != NULL)
{
printf("Entrez la marque :\n");
scanf("%s",&(voit->marque));
printf("Entrez le modele :\n");
scanf("%s",&(voit->modele));
printf("Entrez la puissance :\n");
scanf("%s",&(voit->puissance));
voit->suivant=*p;
*p=voit;
}
}
void Ecrire(Voiture *p)
{
FILE *fic = NULL;
fic = fopen("c:\\test.txt", "wb");
fwrite(p,sizeof(p),1, fic);
fclose(fic);
fic=NULL;
}
void Lecture (void)
{
Voiture *voit=malloc(sizeof voit);
FILE *fic = NULL;
fic = fopen("c:\\test.txt", "rb");
while(fread(voit,sizeof(voit),1,fic))
{
printf("%s,: %s : %s;",voit->marque,voit->modele,voit->puissance);
}
fclose(fic);
fic=NULL;
} |