58 lines
1.8 KiB
C
58 lines
1.8 KiB
C
#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_
|