1 TP n°3 DE LANGAGE C Objectif : − Manipuler les fichiers Exercice 1 On souhait

1 TP n°3 DE LANGAGE C Objectif : − Manipuler les fichiers Exercice 1 On souhaite la liste des pays africains à l’aide de fichier. 1) Ecrire un programme en C (nom du projet : GesPays ; nom du fichier principal : GesPays) qui crée un fichier texte dont le nom (y compris le chemin) est donné. Le programme doit afficher un message en cas d’erreur de création et un autre message en cas de succès. Exécuter le programme. En cas de succès, aller constater la création effective du fichier dans le dossier indiqué. Indication : A l’exécution, taper c:\<votre nom>\payssimple1 comme nom du fichier 2) Compléter le programme afin qui ouvre en écriture le fichier payssimple1 et y enregistre les noms des pays caractère par caractère à partir d’une lecture caractère par caractère du clavier. Exemple d’exécution : Ouvrir le fichier payssimple1 avec Bloc-notes. Qu’observez-vous ? 3) Compléter le programme afin qui ouvre en lecture le fichier payssimple1 et affiche les pays par caractère par caractère. Exemple d’exécution : Indication pour 2) et 3) : Utiliser les fonctions d’écriture/lecture caractère par caractère de stdio.h Syntaxe Action fputc(c, f) La fonction fputc écrit le caractère c dans le fichier f, retourne le caractère écrit ou EOF en cas d'échec. Le pointeur du fichier est automatiquement positionné derrière l’octet écrit. putc(c, f) putc fait la même chose que fputc, mais putc est une macro. putchar(c) Envoie le caractère c sur la sortie standard stdout. putchar est une macro. putchar (c) équivaut à putc(c, stdout). fgetc(f) La fonction fgetc retourne le prochain caractère présent sur f ou EOF si la fin de fichier est atteinte ou si une erreur survient. Le pointeur du fichier est automatiquement positionné derrière l’octet lu. getc(f) getc fait la même chose que fgetc, mais getc est une macro. getchar() La macro getchar retourne le prochain caractère présent sur l'entrée standard (stdin). getchar() équivaut à getc(stdin) 4) Ecrire un programme en C (nom du projet : GesPays1 ; nom du fichier principal : GesPays1) qui crée un fichier texte dont le nom (y compris le chemin) est donné par l’utilisateur, y enregistre les noms des pays ligne par ligne, puis affiche ensuite ligne par ligne les pays enregistrés. Indication : A l’exécution, taper c:\<votre nom>\payssimple2 comme nom du fichier Année académique 2019-2020 Classe : L1IT/FPC Date :29/07/2020 Enseignant : M. LOYA 2 Exemple d’exécution : Comparer le fichier créé avec celui créé en 3) Indication : Utiliser les fonctions d’écriture/Lecture ligne par ligne de stdio.h : Syntaxe Action fputs(ch, f) fputs écrit le caractère ch dans le fichier f, retourne EOF en cas d'échec et une valeur non négative (le dernier caractère écrit) dans les autres cas. Le pointeur du fichier est automatiquement positionné derrière l’octet écrit. puts(ch) puts envoie les caractères de ch sur la sortie standard stdout, plus un '\n’ final. puts(ch) équivaut à fputs(ch, stdout)+fputc(‘\n’). fgets(ch, taille, f) fgets lit des caractères depuis f, les place dans l’espace pointé par ch ; elle s’arrête lorsqu’elle a lu taille-1, ou lorsqu’elle a rencontré le caractère de ligne ‘\n’ (dans ce cas ce caractère est copié dans la chaîne) ou le caractère EOF. Le caractère nul ‘\0’ est ajouté à la fin de la chaîne ch. fgets retourne ch ou NULL en cas d'échec. Le pointeur du fichier est positionné après le dernier octet lu. fgets(ch) gets lit une ligne de texte (terminée par '\n') depuis l'entrée standard (stdin), l'enregistre dans ch jusqu'à atteindre un caractère de fin de ligne, ou EOF, qu'il remplace par '\0'. Il n’y a pas de vérification de débordement de ch. 5) Ecrire un programme en C (nom du projet : GesPays2 ; nom du fichier principal : GesPays2) qui crée un fichier texte dont le nom (y compris le chemin) est donné, y enregistre les pays avec leurs capitales et superficies, puis les affiche ensuite. Indication : A l’exécution, taper c:\<votre nom>\payssimple3 comme nom du fichier Utiliser les fonctions d’écriture/lecture formatées de stdio.h : Syntaxe Action fprintf (f, format [,var1,...,varn]) fprintf écrit dans le fichier f la chaîne de caractère format en remplaçant éventuellement les formateurs (%xx) contenus dans format par les valeurs des expressions var1, . . ., varn, converties en chaînes de caractères. fprintf renvoie le nombre de caractères effectivement écrits ou EOF en cas d’erreur. printf (format [,var1,...,varn]) printf(format[,var1,...,varn])équivaut à fprintf(stdout, format [,var1,...,varn]) fscanf (f, format, ref1,...,refn) fscanf lit les caractères contenus dans le fichier f, les convertit en un type correspondant au format format et les enregistre dans les emplacements référencés par ref1,..., refn. La lecture est interrompue quand les données lues ne correspondent pas au format spécifié ou quand la fin de fichier est rencontrée. fscanf renvoie le nombre de caractères convertis et affectés ou EOF en cas d’erreur scanf (format, ref1,...,refn) scanf(format, ref1,...,refn) équivaut à fscanf(stdin, format, ref1,...,refn) Exemple d’exécution : 3 6) Ecrire un programme en C (nom du projet : GesPays3 ; nom du fichier principal : GesPays3) qui crée un fichier binaire dont le nom (y compris le chemin) est donné, y enregistre les pays avec leurs capitales et superficies (entier long), puis les affiche ensuite. Indication : A l’exécution, taper c:\<votre nom>\payssimple4 comme nom du fichier Utiliser les fonctions d’écriture/lecture binaires de stdio.h : Exemple d’exécution : Ouvrir le fichier payssimple4 avec Bloc-notes. Que constatez-vous ? 7) A partir du fichier binaire des pays payssimple4, écrire un programme (nom du projet : GesPays4 ; nom du fichier principal : GesPays4) qui crée un fichier binaire des populations contenant les numéros des pays dans payssimple4 et les populations (entier long) des pays qui sont entrées par l’utilisateur. Le programme doit afficher ensuite le fichier créé. Exemple d’exécution : Indication : A l’exécution, taper c:\<votre nom>\payssimple5 comme nom du fichier Syntaxe Action fwrite(ptr, tail, nb, f) fwrite écrit dans le flot f nb objets ayant chacun une taille de tail octets et placés les uns à la suite des autres dans une zone pointée par ptr et retourne le nombre d'objets (et non le nombre d'octets) réellement écrits ou 0 en cas d'erreur ou de fin de fichier. fread(ptr, tail, nb, f) fread essaie de lire dans le flot f nb objets ayant chacun une taille de tail octets et les range les uns à la suite des autres dans la zone pointée par ptr. Cette fonction retourne le nombre d'objets réellement lus ou la valeur 0 si la fin du fichier est rencontrée ou s'il y a une erreur de lecture 4 8) On veut écrire un programme (nom du projet : GesPays5 ; nom du fichier principal : GesPays5) qui renseigne les champs population et densité dans le fichier des pays à partir du fichier des populations. Le programme doit afficher le fichier des pays complété. Exemple d’exécution : Indication : Utiliser les fonctions de positionnement de stdio.h : Syntaxe Action fseek(f, depl, orig) fseek permet de se déplacer de depl(peut être<0)octets dans le flot f, en partant de orig. orig peut être: SEEK_SET (égal à 0) : début du fichier ; SEEK_CUR (égale à 1) : position courante; SEEK_END (égal à 2) : fin du fichier. fseek retourne 0 en cas de succès et une valeur non nulle sinon. ftell(f) ftell retourne la position courante dans le flot f, en nombre d'octets à partir du début du fichier. fscanf (f, format, ref1,...,refn) rewind positionne le pointeur du fichier en début de fichier. rewind(f) équivaut à fseek(f, 0L, SEEK_SET) 9) Ecrire un programme (nom du projet : GesPays6 ; nom du fichier principal : GesPays6) qui permet d’ajouter au fichier des pays (payssimple4) d’autres pays. Exemple d’exécution : 10) Écrire un programme (nom du projet : GesPays7 ; nom du fichier principal : GesPays7) qui affiche tous les pays ayant la densité maximale. Exemple d’exécution : 11) Écrire un programme (nom du projet : GesPays8 ; nom du fichier principal : GesPays8) qui insère un nouveau pays à une position donnée par l’utilisateur. Exemple d’exécution : 5 Indication : Utiliser un fichier d’aide : − Ouvrir le fichier à mettre à jour en lecture − Ouvrir le fichier d’aide en écriture − Copier dans le fichier d’aide tous les enregistrements du fichier à mettre à jour qui précèdent le nouvel enregistrement − Ecrire le nouvel enregistrement dans le fichier d’aide − Copier dans le fichier d’aide le reste des enregistrements du fichier à mettre à jour − Fermer les deux fichiers − Ouvrir le fichier d’aide en lecture et le fichier à mettre à jour en écriture − Copier le fichier d’aide dans le fichier à mettre à jour − Fermer et détruire le fichier d’aide Les pays ont été affichés avant et après insertion. 12) Écrire un programme (nom du projet : GesPays9 ; nom du fichier principal : GesPays9) qui modifie un pays donné. Exemple d’exécution : 13) Écrire un programme (nom du projet : GesPays10 ; nom du fichier principal : GesPays10) qui supprime tous les pays dont la densité est inférieure à un seuil donné. Indication : uploads/Geographie/ tpn03-c-pdf.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager