1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
typedef struct entree
{
char nom[50]; // J'alloue la mémoire de manière statique pour chaque entrée
char prenom[50];
char initiales[50];
char mail[50];
char tel[50];
char classe[50];
struct entree *next;
} ENTREE;
void nvl_entree(char buffer[],LISTE *liste) // Ajoute les lignes du fichier dans la liste chainnée => une ligne = une entree (un noeud) de la liste.
{
ENTREE *n_entree=malloc(sizeof(ENTREE));
char sep; //char sep[1];
/*sep[0]=';'; */ /* On ne melange pas declaration et initialisation */
/* char *nom=malloc(50*sizeof(char));
char *prenom=malloc(50*sizeof(char));
char *initiales=malloc(50*sizeof(char));
char *mail=malloc(50*sizeof(char));
char *tel=malloc(50*sizeof(char));
char *classe=malloc(50*sizeof(char)); */
/* Tous avec la meme taile... C'est fortement discutable. En plus, on n'a pas besoin de chaines de caracteres, mais de pointeurs.*/
char *nom;
char *prenom;
char *initiales;
char *mail;
char *tel;
char *classe;
sep = ';' ;
/* ATTENTION : ici, on modifie la chaine buffer !!! */
/* Tout reecrire en utilisant strncpy au lieu de strcpy. Mieux si disponible : strlcpy */
nom=strtok(buffer,sep);
strcpy(n_entree->nom,nom);
/* j'arrete ici, ca fait deja pas mal */
....... |