Bonjour,
j'ai besoin d'aide les amis je veux lire un paragraphe à partir d'un fichier et le stocker dans une liste chaîne .le problème c'est que la lecture s’arrête au premier espace aidez-moi SVP
Bonjour,
j'ai besoin d'aide les amis je veux lire un paragraphe à partir d'un fichier et le stocker dans une liste chaîne .le problème c'est que la lecture s’arrête au premier espace aidez-moi SVP
Montre ton code qui pose problème et on pourra t'aider.
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 typedef struct para{ char titp[30]; char p[2000]; struct para *next; }para; typedef struct title{ char titre[30]; para *list_para; struct title *next; }tit; tit *listc; char titp[30]; char nomp[30]; char pr[5]; char bg[30]; void remplir(){ listc=NULL; tit *p=NULL; para *pr; char *nomf = "f.txt"; FILE *f; f = fopen(nomf,"r"); if(!f) printf("Erreur !!"); char c; int t=0; do { if(t!=1) fscanf(f,"%c ",&c); p = (tit*)malloc(sizeof(tit)); fscanf(f,"%s\n",p->titre); do { fscanf(f,"%c ",&c); if(c=='p') { pr = (para*)malloc(sizeof(para)); fscanf(f," %s %s\n",pr->titp,pr->p); printf("%s",pr->p); pr->next = p->list_para; p->list_para = pr; } else t=1; }while((c=='p')&&(!feof(f))); p->next = listc; listc = p; }while(!feof(f)); fclose(f); }
le ficher f.txt est organiser de la façon suivante
t informatique
p langage_c le jdejfjdfkdf hshddklldm skskdskhfs lksjdjsjds nnhsfhhd
....
le titre j'arrive à le lire (langage_c) il n'est pas separer par des espaces mais le paragraphe s’arrête au premier mot jdejfjdfkdf comment faire SVP
Salut,
ton code est vraiment illisible, pense à nommer bien tes variables avec des noms significatifs, faire des indentations et évite l'utilisation des variables globales, parce que c'est difficile de localiser l'erreur dans un code comme le tien.![]()
Je signale tout de même que le primo-postant avait initialement déposé son code sans les balises CODE et que, même si en principe vBulletin conserve dans ses bases le message tel qu'il a été saisi, il est possible que les indentations aient été oblitérées par l'opération du copier-coller.
Voici le code formaté de manière lisible
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 typedef struct para { char titp[30]; char p[2000]; struct para *next; } para; typedef struct title { char titre[30]; para *list_para; struct title *next; } tit; tit *listc; char titp[30]; char nomp[30]; char pr[5]; char bg[30]; void remplir() { listc=NULL; tit *p=NULL; para *pr; char *nomf = "f.txt"; FILE *f; f = fopen(nomf,"r"); if(!f) printf("Erreur !!"); char c; int t=0; do { if(t!=1) fscanf(f,"%c ",&c); p = (tit*)malloc(sizeof(tit)); fscanf(f,"%s\n",p->titre); do { fscanf(f,"%c ",&c); if(c=='p') { pr = (para*)malloc(sizeof(para)); fscanf(f," %s %s\n",pr->titp,pr->p); printf("%s",pr->p); pr->next = p->list_para; p->list_para = pr; } else t=1; } while((c=='p')&&(!feof(f))); p->next = listc; listc = p; } while(!feof(f)); fclose(f); }
Je l'ai lu en diagonale mais :
- feof() ne s'utilise pas ainsi : http://c.developpez.com/faq/?page=es_general#ES_feof
- fopen() : mieux vaut vérifier l'ouverture du fichier
- scanf() avec un formateur %s s'arrête dés qu'il rencontre un caractère blanc, tel qu'une espace...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager