Laboratoire 13: Énoncé
Ce laboratoire a pour but de vous faire pratiquer à faire persister les informations dans des fichiers, notamment :
- L'ouverture de fichiers textes et l'utilisation des diverses fonctions de lecture et d'écriture de la librairie standard;
- L'ouverture de fichiers binaires et l'utilisation des fonction fread et fwrite
Fonctionnement du laboratoire:
- Ce laboratoire se compose de 6 exercices. Ceux-ci doivent tous être complétés d’ici la prochaine séance de laboratoire.
Énoncés des exercices :
Question 1:
Écrire un programme qui demande l'usager de saisir une chaine de caractères et qui sauvegarde la chaine en question dans un fichier (portant le nom de votre choix). Ensuite votre programme doit ouvrir le fichier créé en lecture et afficher son contenu à l'écran.
Question 2:
Écrire un programme qui demande à l'utilisateur de saisir un nom de fichier (nom_fich), puis qui demande à l'usager de saisir des chaines de caractères (à répétition). Pour chaque chaine de caractères saisie, votre programme doit la sauvegarder dans le fichier nom_fich. Le programme continue jusqu'à ce que l'usager saisisse une ligne vide. Il faudra alors afficher le contenu complet du fichier à l'écran.
Note: Vous ne devez pas sauvegarder dans une variable TOUTES les chaines saisies par l'usager au fur-et-à-mesure qu'il saisit.
Question 3:
Écrire une fonction qui prend en paramètre le nom d'un fichier texte et qui retourne, dans une chaine de caractères allouée dynamiquement, le contenu complet du fichier lu.
Question 4:
Écrire une fonction qui lit un fichier texte contenant des températures (une température par ligne), et qui renvoie la température moyenne.
Question 5:
Soit le type polygone suivant:
typedef struct {
int nb_points; // Nombre de points du polygone
t_point *points; //Tableau dynamique de points
} t_polygone;
typedef struct{
double x;
double y;
} t_point;
Écrivez une fonction qui reçoit une référence vers un polygone et un nom de fichier. Votre fonction doit sauvegarder le polygone dans un fichier texte ayant le format suivant (ceci est un exemple de carré):
4
10.00 10.00
10.00 20.00
20.00 20.00
20.00 10.00
Votre fonction doit renvoyer vrai si l'enregistrement s'est bien effectué, ou faux sinon. Elle doit avoir le prototype suivant:
int sauvegarder_polygone(t_polygone *p, char *nom_fich);
Question 6:
Écrivez maintenant une fonction qui permet de lire un fichier contenant les informations d'un polynôme (qui a été créé par la fonction de la question 5). Votre fonction doit retourner une référence vers un polynôme alloué dynamiquement. Si une erreur se produit, votre fonction doit retourner NULL. Elle doit avoir le prototype suivant:
t_polygone * charger_polygone(char* nom_fich);