Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
typedef struct sommet{char* nom;
                            int zone; // 0 si zone blanche, 1 si zone grise
                            struct sommet *listSom;
                            struct sommet *suiv;
                            }station;
 
station *premier;
typedef station *liste_station;
 
liste_station creerstation(char *nomstation)
{
liste_station l;
l=(liste_station)malloc(sizeof(station));
l->nom=nomstation;
l->suiv=NULL;
return l;
}
 
liste_station add_station(liste_station nouveau,liste_station premier)
{if (nouveau != NULL)
        {nouveau->suiv=premier;
            return nouveau;
        }      
else return premier;
}
 
void afficherstation (liste_station premier)//on affiche une liste de station en commençant par la valeur du premier element de la liste puis on rappel afficher avec la veleur suivznte comme premier element
{
    if (premier!=NULL)
    {printf("%s ", premier->nom);
 
afficherstation(premier->suiv);
}}
 
liste_station lesstations()
{  
liste_station unelistedestation=NULL;
liste_station nouveau_station;
 
    int i;
    char *fnom;
    FILE *datastat;
        datastat=fopen("reseauA.dat","r");
 
while(!feof(datastat))
        {
            fscanf(datastat,"%s",fnom);
 nouveau_station=creerstation(fnom);
   unelistedestation=add_station(nouveau_station,unelistedestation);
 
 
 
    fclose(datastat);
    return unelistedestation;
}
main()
{
liste_station unestation=NULL;
liste_station nouveau;
liste_station test;
printf("les stations sont en cours");
test=lesstations();
 
printf("les stations sont fini");
printf("\n");
afficherstation(test);
 
 
system("pause");
}
je vous explique pas le but du projet, juste que je n'arrive pas a afficher correctement mon fichier stationA.dat
je récupère bien 49 occurrence de quelque chose mais ce n'est pas ce que je devrais obtenir...surement un soucis au niveau de la mise en liste depuis le fichier...

a savoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
while(!feof(datastat))
        {
            fscanf(datastat,"%s",fnom);
 nouveau_station=creerstation(fnom);
  unelistedestation=add_station(nouveau_station,unelistedestation);
 
}
si je printf fnom, je recupere bien le fichier,
si je creerstation("aaa") je recupere n* aaa,
si je laisse le code tel quel je recupere n* -------------
mais je ne vois pas d'ou ça peut venir à part de la ou d'un soucis sur pointeur !