Bonjour
J'ai le code suivant :
et bien sur lol, j'ai un probleme : qd j'ouvre mon fichier creer : je trouve le nom de la personne en texte puis ensuite : des caracteres aleatoire non lisible :s.. Je suis un peu perdu la
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
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 #include <stdio.h> #include <string.h> #include <stdlib.h> #define LGNOM 20 /* longueur maxi d'un nom */ #define NBENFMAX 15 /* nombre maxi d'enfants */ #define LNOMFICH 20 /* longueur maxi nom de fichier */ main() { char nomfich [LNOMFICH+1] ; /* nom du fichier à créer */ FILE * sortie ; /* descripteur fichier (niveau 2) */ struct { char nom [LGNOM+1] ; int age ; /* description d'un enregistrement */ int nbenf ; /* du fichier */ int agenf [NBENFMAX] ; } bloc ; int i ; /* ouverture fichier à créer */ /* attention : mode d'ouverture w au lieu de wb dans certains cas */ printf ("donnez le nom du fichier à créer : ") ; gets (nomfich) ; if ( (sortie = fopen (nomfich, "w")) == NULL ) { printf ("***** erreur ouverture - abandon programme") ; exit(-1) ; } /* création du fichier à partir d'informations */ /* fournies au clavier */ printf ("----- pour terminer la saisie, donnez un nom 'vide' ---\n") ; do { printf ("nom : ") ; /* saisie nom */ gets (bloc.nom) ; if ( strlen(bloc.nom) == 0) break ; /* sortie boucle si nom vide */ printf ("age : ") ; scanf ("%d", &bloc.age) ; /* saisie age */ printf ("nombre enfants : ") ; scanf ("%d", &bloc.nbenf) ; /* saisie nb enfants */ for (i=0 ; i < bloc.nbenf && i < NBENFMAX ; i++) { printf ("age enfant no %d : ", i+1) ; /* saisie age des */ scanf ("%d", &bloc.agenf[i]) ; /* différents enfants */ } getchar() ; /* pour éliminer \n */ printf ("\n") ; fwrite (&bloc, sizeof(bloc), 1, sortie) ; /* écriture fichier */ } while (1) ; /* fin création */ fclose(sortie) ; printf ("\n -------- FIN CREATION FICHIER ----------") ; }
Avez vous trouvé mon erreur ?
Merci pour votre aide
PS : voici le resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part karim ÿÿ5bÏ ¸p8 Tÿ þK4 @ ÿ ÿ pÿ Úa4 ÿ ÿ ¸Ema m ÿÿ5bÏ ¸p8 K4 @ ÿ ÿ pÿ Úa4 ÿ ÿ ¸
Partager