Bonjour
Je suis étudiant en informatique et on vient de nous introduire aux entrées/sorties et disons que je suis un peu perdu. Pourriez vous m'expliquer ce code svp.

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
 
#include <stdio.h>
 
#define NbElt ( t ) ( sizeof t / sizeof t [0] )
 typedef struct { 
 int n ;
 float t [10] ;
 char c ;
 } Donnee ;
 
 int main(int argc , char *argv [ ] ) { 
 Donnee s1 = { 1 , { 1. , 2. , 3.} , ’a’};
 Donnee s2 [ ] = { {4, {10. , 32. , 3.} , ’z’}, {5, { 2. , 11. , 2. , 4.} , ’h’} };
 FILE *f , *f_sauve ; Donnee s ;
 
 if ( ( f = fopen("donnee" , "w" ) ) == NULL)
 perror("fopen") , exit ( 1 ) ;
 fwrite(&s1 , sizeof(Donnee) , 1 , f ) ;
 fwrite( s2 , sizeof(Donnee) , NbElt(s2) , f ) ;
 fclose(f ) ;
 if ( ( f = fopen("donnee" , "r" ) ) == NULL || 
 (f_sauve = fopen("sauvegarde" , "w" ) ) == NULL)
 perror("fopen") , exit ( 2 ) ;
 fread(&s , sizeof(Donnee) , 1 , f ) ;
 while ( ! feof(f ) )
 { 
 fwrite(&s , sizeof(Donnee) , 1 , f_sauve ) ;
 fread(&s , sizeof(Donnee) , 1 , f ) ;
 }  fclose(f ) ;
 fclose(f_sauve ) ;
 }
Merci