Programmer en langage C
182
© Éditions Eyrolles
1 Création séquentielle d’un fichier
Voici un programme qui se contente d’enregistrer séquentiellement dans un fichier une suite
de nombres entiers saisis au clavier.
Nous avons déclaré un tableau de caractères nomfich destiné à contenir, sous forme d’une
chaîne, le nom du fichier que l’on souhaite créer.
La déclaration :
FILE * sortie ;
signifie que sortie est un pointeur sur un objet de type FILE. Ce nom désigne en fait un
modèle de structure défini dans le fichier stdio.h (par une instruction typedef, ce qui
explique l’absence du mot struct).
N’oubliez pas que cette déclaration ne réserve qu’un emplacement pour un pointeur. C’est la
fonction fopen qui créera effectivement une telle structure et qui en fournira l’adresse en
résultat.
Création séquentielle d’un fichier d’entiers
#include
main()
{
char nomfich[21] ;
int n ;
FILE * sortie ;
printf ("nom du fichier à créer : ") ;
scanf ("%20s", nomfich) ;
sortie = fopen (nomfich, "w") ;
do { printf ("donnez un entier : ") ;
scanf ("%d", &n) ;
if (n) fwrite (&n, sizeof(int), 1, sortie) ;
}
while (n) ;
fclose (sortie) ;
}
Delannoy Livre.book Page 182 Mercredi, 6. mai 2009 4:26 16
182
© Éditions Eyrolles
1 Création séquentielle d’un fichier
Voici un programme qui se contente d’enregistrer séquentiellement dans un fichier une suite
de nombres entiers saisis au clavier.
Nous avons déclaré un tableau de caractères nomfich destiné à contenir, sous forme d’une
chaîne, le nom du fichier que l’on souhaite créer.
La déclaration :
FILE * sortie ;
signifie que sortie est un pointeur sur un objet de type FILE. Ce nom désigne en fait un
modèle de structure défini dans le fichier stdio.h (par une instruction typedef, ce qui
explique l’absence du mot struct).
N’oubliez pas que cette déclaration ne réserve qu’un emplacement pour un pointeur. C’est la
fonction fopen qui créera effectivement une telle structure et qui en fournira l’adresse en
résultat.
Création séquentielle d’un fichier d’entiers
#include
main()
{
char nomfich[21] ;
int n ;
FILE * sortie ;
printf ("nom du fichier à créer : ") ;
scanf ("%20s", nomfich) ;
sortie = fopen (nomfich, "w") ;
do { printf ("donnez un entier : ") ;
scanf ("%d", &n) ;
if (n) fwrite (&n, sizeof(int), 1, sortie) ;
}
while (n) ;
fclose (sortie) ;
}
Delannoy Livre.book Page 182 Mercredi, 6. mai 2009 4:26 16
