#ifndef GENPRINT_H_ #define GENPRINT_H_ #include "compare.h" typedef enum type_t { // pour les switch() INT, INT2, CHAR, DOUBLE, STRING, STRING2, POINTX, POINTY, } type_t; #define NUMTYPES (POINTY + 1) #define MAX_TYPE_NAME_LEN 8 // Initialisation aléatoire de l'élément T[i]. // // Les entiers sont aléatoires dans [0,100[. // Les caractères sont des lettres majuscules aléatoires. // Les doubles sont aléatoires dans [-1,+1]. // Les chaînes sont d'au plus MAXSTR minuscules aléatoires. // Les points sont aléatoires dans [0,10[ x [0,10[. void init(type_t t, void *T, int i); // Affiche T[i] avec le bon format suivant le type t. // // Les entiers sont affichés sur 2 chiffres, sans signe si positifs. // Les doubles le sont avec leur signe et 2 chiffres après la virgule. // Les points le sont comme (5.2,3.1) avec 1 chiffre après la virgule. void print(type_t t, const void *T, int i); // Affiche le contenu du tableau T d'éléments de type t de nb éléments. void print_array(const void *T, type_t t, int nb); // Lit un tableau d'éléments depuis un flux. // - Le flux f doit être ouvert en lecture. // // En cas de succès : // - Le type des éléments est indiqué dans t. // - Le nombre d'éléments est indiqué dans nb. // - La fonction renvoie le tableau alloué dynamiquement. // // En cas d'erreur, NULL est retourné et le tableau n'est pas alloué. // // Le format du fichier est le suivant : // - une ligne avec le nombre d'éléments du tableau. // - une ligne avec le type des éléments du tableau // (int, int2, char, double, string, string2, pointx ou pointy). // - les éléments du tableau, séparés par des espaces. // Des fichiers d'exemple sont fournis (array*.txt). void *read_array(FILE *f, type_t *t, int *nb); #endif // GENPRINT_H_