salut a tous,je suis en train de taffer sur un projet en C plutot long,
mon programme contient un switch avec 17 cases et lorsque je compile
il me met "out of memory in function" alors qu a prioro il n y a aucune erreur
salut a tous,je suis en train de taffer sur un projet en C plutot long,
mon programme contient un switch avec 17 cases et lorsque je compile
il me met "out of memory in function" alors qu a prioro il n y a aucune erreur
A la compilation ? Peut être un problème d'inclusion infinie...Envoyé par mehdi.berra
Montre le code ou donne un lien...
Pas de Wi-Fi à la maison : CPL
Je regarde du coté des options du compilateur. Ton switch pose peut probleme, essaye de laisser un seul case dedans pour voir si cela vient de là.
Bonjour,
montre ton code, ce n'est pas un message de compilateur courant...
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
- Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
Effectivememnt, c'est un problème de switch parce quand j'en met qu'un seul ça marche mais une fois que le switch est rempli ça marche plus il me met le fameux message
voila le code,je n ai pas tout mis ,mais il y a encore bcp de switch:
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208 #include<stdio.h> #include<conio.h> #include <iostream.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <io.h> #include <dos.h> void menuprincipal(); void curseur(int); void cadre(int,int,int,int,int,int,int,int,int); int saisie1(); int saisie2(); int saisie3(); void aff4(int,int,int); void init(int,int,int,int); main() { char x; int n1,n2,n3; do{ clrscr(); menuprincipal(); n1=saisie1();n2=saisie2();n3=saisie3(); aff4(n1,n2,n3); switch(n1) { case 0:{ FILE *fichier; char problem[35]={'A','F','R','I','Q','U','I','A','\0'}; char client[35]; char gaz[35]; char anne[35]; char mois[35]; char k; int a,b,c,d,e,f,g,h,i,j; char nomfich[6]={'n','a','d','o','r','\0'}; gotoxy(6,4);printf("Centre:NADOR"); fichier=fopen(nomfich,"r"); do { fscanf(fichier,"%s",client); if (strcmp(problem,client)==0) { flushall(); fscanf(fichier,"%s",gaz); gotoxy(58,2);fscanf(fichier,"%s",anne);printf(" ");gotoxy(58,2);printf("%s",anne); gotoxy(13,2);fscanf(fichier,"%s",mois);printf(" ");gotoxy(13,2);printf("%s",mois); gotoxy(35,9);fscanf(fichier,"%d",&a);printf(" ");gotoxy(35,9);printf("%d",a); gotoxy(66,9);fscanf(fichier,"%d",&b);printf(" ");gotoxy(66,9);printf("%d",b); gotoxy(35,12);fscanf(fichier,"%d",&c);printf(" ");gotoxy(35,12);printf("%d",c); gotoxy(66,12);fscanf(fichier,"%d",&d);printf(" ");gotoxy(66,12);printf("%d",d); gotoxy(35,16);fscanf(fichier,"%d",&e);printf(" ");gotoxy(35,16);printf("%d",e); gotoxy(66,16);fscanf(fichier,"%d",&f);printf(" ");gotoxy(66,16);printf("%d",f); gotoxy(35,19);fscanf(fichier,"%d",&g);printf(" ");gotoxy(35,19);printf("%d",g); gotoxy(66,19);fscanf(fichier,"%d",&h);printf(" ");gotoxy(66,19);printf("%d",h); gotoxy(35,22);fscanf(fichier,"%d",&i);printf(" ");gotoxy(35,22);printf("%d",i); gotoxy(66,22);fscanf(fichier,"%d",&j);printf(" ");gotoxy(66,22);printf("%d",j); k=getch(); } }while((fgetc(fichier)!=EOF)&(k==13)); gotoxy(48,6);curseur(1);textcolor(27);cprintf("Retour menu/Sortir(R/S)?"); flushall();scanf("%c",&x); break; } case 1:{ FILE *fichier; char problem[35]={'A','T','L','A','S','\0'}; char client[35]; char gaz[35]; char anne[35]; char mois[35]; char k; int a,b,c,d,e,f,g,h,i,j; char nomfich[6]={'n','a','d','o','r','\0'}; gotoxy(6,4);printf("Centre:NADOR"); fichier=fopen(nomfich,"r"); do { fscanf(fichier,"%s",client); if (strcmp(problem,client)==0) { flushall(); fscanf(fichier,"%s",gaz); gotoxy(58,2);fscanf(fichier,"%s",anne);printf(" ");gotoxy(58,2);printf("%s",anne); gotoxy(13,2);fscanf(fichier,"%s",mois);printf(" ");gotoxy(13,2);printf("%s",mois); gotoxy(35,9);fscanf(fichier,"%d",&a);printf(" ");gotoxy(35,9);printf("%d",a); gotoxy(66,9);fscanf(fichier,"%d",&b);printf(" ");gotoxy(66,9);printf("%d",b); gotoxy(35,12);fscanf(fichier,"%d",&c);printf(" ");gotoxy(35,12);printf("%d",c); gotoxy(66,12);fscanf(fichier,"%d",&d);printf(" ");gotoxy(66,12);printf("%d",d); gotoxy(35,16);fscanf(fichier,"%d",&e);printf(" ");gotoxy(35,16);printf("%d",e); gotoxy(66,16);fscanf(fichier,"%d",&f);printf(" ");gotoxy(66,16);printf("%d",f); gotoxy(35,19);fscanf(fichier,"%d",&g);printf(" ");gotoxy(35,19);printf("%d",g); gotoxy(66,19);fscanf(fichier,"%d",&h);printf(" ");gotoxy(66,19);printf("%d",h); gotoxy(35,22);fscanf(fichier,"%d",&i);printf(" ");gotoxy(35,22);printf("%d",i); gotoxy(66,22);fscanf(fichier,"%d",&j);printf(" ");gotoxy(66,22);printf("%d",j); k=getch(); } }while((fgetc(fichier)!=EOF)&(k==13)); gotoxy(48,6);curseur(1);textcolor(27);cprintf("Retour menu/Sortir(R/S)?"); flushall();scanf("%c",&x); break; } case 2:{ FILE *fichier; char problem[35]={'B','U','T','S','I','R','\0'}; char client[35]; char gaz[35]; char anne[35]; char mois[35]; char k; int a,b,c,d,e,f,g,h,i,j; char nomfich[6]={'n','a','d','o','r','\0'}; gotoxy(6,4);printf("Centre:NADOR"); fichier=fopen(nomfich,"r"); do { fscanf(fichier,"%s",client); if (strcmp(problem,client)==0) { flushall(); /* fscanf(fichier,"%s",gaz);*/ gotoxy(58,2);fscanf(fichier,"%s",anne);printf(" ");gotoxy(58,2);printf("%s",anne); gotoxy(13,2);fscanf(fichier,"%s",mois);printf(" ");gotoxy(13,2);printf("%s",mois); gotoxy(35,9);fscanf(fichier,"%d",&a);printf(" ");gotoxy(35,9);printf("%d",a); gotoxy(66,9);fscanf(fichier,"%d",&b);printf(" ");gotoxy(66,9);printf("%d",b); gotoxy(35,12);fscanf(fichier,"%d",&c);printf(" ");gotoxy(35,12);printf("%d",c); gotoxy(66,12);fscanf(fichier,"%d",&d);printf(" ");gotoxy(66,12);printf("%d",d); gotoxy(35,16);fscanf(fichier,"%d",&e);printf(" ");gotoxy(35,16);printf("%d",e); gotoxy(66,16);fscanf(fichier,"%d",&f);printf(" ");gotoxy(66,16);printf("%d",f); gotoxy(35,19);fscanf(fichier,"%d",&g);printf(" ");gotoxy(35,19);printf("%d",g); gotoxy(66,19);fscanf(fichier,"%d",&h);printf(" ");gotoxy(66,19);printf("%d",h); gotoxy(35,22);fscanf(fichier,"%d",&i);printf(" ");gotoxy(35,22);printf("%d",i); gotoxy(66,22);fscanf(fichier,"%d",&j);printf(" ");gotoxy(66,22);printf("%d",j); k=getch(); } }while((fgetc(fichier)!=EOF)&(k==13)); gotoxy(48,6);curseur(1);textcolor(27);cprintf("Retour menu/Sortir(R/S)?"); flushall();scanf("%c",&x); break; } case 8:{ FILE *fichier; char problem[35]={'N','A','D','I','\0'}; char client[35]; char gaz[35]; char anne[35]; char mois[35]; char k; int a,b,c,d,e,f,g,h,i,j; char nomfich[6]={'n','a','d','o','r','\0'}; gotoxy(6,4);printf("Centre:NADOR"); fichier=fopen(nomfich,"r"); do { fscanf(fichier,"%s",client); if (strcmp(problem,client)==0) { flushall(); fscanf(fichier,"%s",gaz); gotoxy(58,2);fscanf(fichier,"%s",anne);printf(" ");gotoxy(58,2);printf("%s",anne); gotoxy(13,2);fscanf(fichier,"%s",mois);printf(" ");gotoxy(13,2);printf("%s",mois); gotoxy(35,9);fscanf(fichier,"%d",&a);printf(" ");gotoxy(35,9);printf("%d",a); gotoxy(66,9);fscanf(fichier,"%d",&b);printf(" ");gotoxy(66,9);printf("%d",b); gotoxy(35,12);fscanf(fichier,"%d",&c);printf(" ");gotoxy(35,12);printf("%d",c); gotoxy(66,12);fscanf(fichier,"%d",&d);printf(" ");gotoxy(66,12);printf("%d",d); gotoxy(35,16);fscanf(fichier,"%d",&e);printf(" ");gotoxy(35,16);printf("%d",e); gotoxy(66,16);fscanf(fichier,"%d",&f);printf(" ");gotoxy(66,16);printf("%d",f); gotoxy(35,19);fscanf(fichier,"%d",&g);printf(" ");gotoxy(35,19);printf("%d",g); gotoxy(66,19);fscanf(fichier,"%d",&h);printf(" ");gotoxy(66,19);printf("%d",h); gotoxy(35,22);fscanf(fichier,"%d",&i);printf(" ");gotoxy(35,22);printf("%d",i); gotoxy(66,22);fscanf(fichier,"%d",&j);printf(" ");gotoxy(66,22);printf("%d",j); k=getch(); } }while((fgetc(fichier)!=EOF)&(k==13)); gotoxy(48,6);curseur(1);textcolor(27);cprintf("Retour menu/Sortir(R/S)?"); flushall();scanf("%c",&x); break; }
Au pire, tu peux toujours essayer en séparant tes sources...
J'avais souvent ce problème avec le compilateur QuickC à une époque, et séparer davantage le code suffisait à le résoudre...
Edit: Houlà, là, ça devient grave. Quelqu'un a un tutoriel ou une entrée de FAQ sur la compilation séparée ?
Pour la grammaire, on verra plus tard.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Comment tu fais pour separer les sources?
ca m arrangerais pas mal si tu pourrais m aider please
C'est une question liée à la conception. On écrit pas du code au kilomètre.Envoyé par mehdi.berra
- on spécifie
- on organise et on découpe
- on code selon le découpage
Découper à postériori revient à refaire la conception (phase 2).
Ceci peut aider
http://emmanuel-delahaye.developpez.com/codage.htm
Pas de Wi-Fi à la maison : CPL
Mon cher emmanuel, j ai compris ce que tu m'a dit mais malheuresement en allant dans le lien que tu m a donner,j ai constater que c etait trop compliquer car je ne suis qu un debutant,et je n ai pas encore fait tout ca.
Par contre,j ai bien decouper mon programme,en fait j ai un peu respecter ce que tu ma dit,regarde bien le programme et tu le constatera.Bref,tu n aurais pas une autre solution,ce ne serait pas un probleme d'allocation de memoire????
Déjà, tu devrais essayer d'utiliser des fonctions pour le code des case de ton switch, ça améliorerait la lisibilité.
Je n'ai pas lu en détail tous les case, mais si tu as des morceaux de code semblables qui reviennent plusieurs fois, essaie d'en faire des fonctions.
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Salut zorro,
j ai deja essayer ce que tu m'a dit il y a une semaine mais ca ne donne rien
en fait a la compilation il me met comme message:"fatal C:out of memory in function fichier" alors que je n ai meme pas de fonction fichier dans tout le programme,mais par contre j utilise un fichier,
en gros je suis vraiment depasser....
OK, je vais me dévouer, mais je manque de matériel.
La Compilation séparée est le fait de répartir le code sur plusieurs fichiers source C. Chaque fichier source est compilé séparément en un fichier objet (fichier.o pour GCC, fichier.obj pour QuickC et Visual), qui sont ensuite réunis dans l'étape d'édition de liens qui transforme un ensemble de fichiers objets en un programme exécutable.
Le compilateur et l'éditeur de liens (ou linker) sont souvent deux programmes séparés. Pour GCC, le compilateur s'appelle je-ne-sais-comment, mais l'éditeur de liens est ld. Sous Visual, le compilateur est cl.exe et l'éditeur de liens link.exe.
Tu dois trouver le compilateur et l'éditeur de liens de ton environnement (que tu n'as toujours pas précisé) et les exécuter séparément.
Ou bien, si tu utilises un environnement de développement, tu peux certainement définir un fichier projet dans lequel inclure plusieurs fichiers source.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Bon, j'ai regardé ton code plus en détail, et sauf erreur de ma part, le code des case est identique, à part la définition de ta variable "problem".
Ce que tu devrais faire, c'est mettre tout ce code dans une fonction, appeler cette fonction dans chacun des case de ton switch, en lui passant en paramètre la variable "problem".
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Meci Medinoc de te devouer
MAIS le probleme,c est que ce que tu me dis,j ai l impression que c est du chinois!!!!!deja je ne travaille pas avec un orienter objet,je bosse avec borland C
est ce que tu es sure que mon problem viens de la,ca ne peut pas etre autre chose,du genre allocation de la memoire???
Un "fichier objet" n'a rien à voir avec l'"orienté objet".
Un "fichier objet" est ce qui sort du compilateur. Et quant à savoir si la compilation séparée résoudra ou non ton problème, j'en sais f***** rien, je sais seulement que ça avait résolu les miens.
Et la compilation séparée, n'importe qui sachant programmer en C devrait savoir ce que c'est sans que ce soit "du chinois". On ne fait pas de "projet en C plutot long" quand on ne sait pas ce que c'est...
PS: J'apprécie moyennement qu'on me relance par MP alors que je visite déjà ces forums plus de temps que je le devrais. Ne recommence pas.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
t'as test une structure if, else if, else au lieu du switch ? on sait jamais :s
merci de vouloir ramislebob
mais avec un if et else c est super super super long
merci kan meme
zorro a trouver la solution et pour lui rendre hommage,dans mon programme un efonction porte son nom: le grand zorro
p.s: c est vrai en plus
Et oui !
Enfin, moi c'est pas Zorro, mais Zooro, avec deux O !Envoyé par Henri Salvador
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Salut,
Je sais que je suis chiant sur le sujet, mais, si au moins ton code était déjà un tant soit peu correctement indenté, et que tu ne surchargeait pas inutilement ta fonction main(), ce serait franchement pas plus mal...
Dans le meme ordre d'esprit, avoir une seule instruction par ligne facilite les choses également ...
Les lignes du genre de
seraient avantageusement remplacées par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 gotoxy(66,22);fscanf(fichier,"%d",&j);printf(" ");gotoxy(66,22);printf("%d",j);
[1]au passage: Au passage, je ne comprend pas l'utilité de ces lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 gotoxy(66,22);//[1] fscanf(fichier,"%d",&j); printf(" ");//[1] gotoxy(66,22); printf("%d",j);
gotoxy(), quand il existe, place le curseur en position (ligne,colone)
fscanf() lit dans un fichier mais n'affiche rien
l'ajout de quelques espace ne change pas grand chose
Quelques conseils en vrac pour te permette de t'améliorer:
-Au delà de 3 ou quatre arguments à passer à une fonction, le risque d'erreur devient très important lors du passage des paramètres ... Alors, une fonction qui en demande 9 ...
Ta fonction void cadre (int....int);
serait astucieusement remplacée par une structure et l'appel de la fonction en fournissant cett structure sous la forme de
(les noms fournis dans la structure devraient idéalement etre "plus parlants" )
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 //la structure intéressante: 9 entiers avec un nom distinct typedef struct nineint { int a1; int a2; int a3; int a4; int a5; int a6; int a7; int a8; int a9 }NeufInt; //prototype de la fonction cadre "nouvelle version" void cadre(NeufInt a); //utilisation dans la fonction cadre sous la forme de a.a1
*Idéalement*, la fonction principale devrait n'avoir à faire que trois choses:
- appeler une fonction qui se charge d'initialiser l'application
- appeler une fonction qui se charge de la gestion
- libérer correctement les ressources
cela donnerait un truc du genre de
[TIP] Plus une fonction est importante, plus il sera difficile de t'y retrouver dedans, et plus difficile sera le débuggage [/TIP]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int main(char argc, char **argv) { LaFonctionDinit(); LaFonctionUtile(); LaFonctionLiberante(); return 0; }
Certains vont jusqu'à considérer qu'une fonction ne devrait pas dépasser une cinquantaine de lignes (deux "pages de la console" qui prend 25 lignes en plein écran)...
De la meme manière, les lignes d'un case ne devraient pas etre plus nombreuses qu'une petite diziane...
Sinon, c'est qu'il est peut etre intéressant de créer une fonction
Ton switch/case se verrait avantageusement remplacé par
Avec des noms "qui vont bien" pour les noms de fonctions, avoue que c'est plus parlant que les presque 160 instructions que tu as mises dans tes cases
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 switch(n1) { case 0: PourCase0(); break; case 1: PourCase1(); break; case 2: PourCase2(); break; case 8: PourCase8(); break; }
Une autre chose qui frappe, c'est que dans chaque case on trouve des déclarations...
[FIXME] j'en suis resté sur l'idée que toutes les déclarations de variables devaient etre effectuée avant la premier instruction de la fonction... qu'en dit la norme actuelle?[/FIXME]
Je te les recopie ici:
Envoyé par case 0:Envoyé par case1...N'y a-t-il rien qui te choque dans l'histoire?Envoyé par case2
Personnellement, ce qui me "choque", c'est que ce sont toujours exactement les même nom de variables, avec exatement les memes tailles, et que, seul, change les valeur de deux variables (nomfich et problem)...
Il pourrait etre intéressant, vu qu'apparemment, toutes ces valeurs sont utilisées dans un meme but, de créer une structure qui aille bien avec... En n'y mettant peut etre simplement pas le pointeur sur le fichier ni le caractère k qui te sert visiblement pour le getch...
Cela donnerait
De telle manière, chaque fois que tu as besoin de cette structure tu l'appelle sous la forme de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 typedef struct Le_Nom_Struct_Qui_Va_Bien { char problem[35]; char client[35]; char gaz[35]; char anne[35]; char mois[35]; int a,b,c,d,e,f,g,h,i,j; char nomfich[6]; }Le_Nom_Type_Qui_Va_Bien;
et tu n'as plus qu'à initialiser mavar.nomfich et mavar.problem...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Le_Nom_Type_Qui_Va_Bien mavar;
Cela te permettra d'éviter les copier/coller à répétitions et les erreurs de recopies (d'autant plus que la plupart des EDI fournissent un système d'auto complétion)...
Ce qui me choque encore plus, c'est que, pour les case que tu as indiqué, finalement, il n'y a jamais que cest valeurs qui changent (éventuellement lors d'un affichage)...
Cela signifie que les quatre fonctions dont j'ai parlé plus haut (PourCase0(), PourCase1(),PourCase2() et PourCase8()) pourraient très bien être regroupées en une seule:
Il suffirait de donner à cette fonction les valeur de problem et de nomfich...
Le prototype serait
l'appel s'en ferait sous la forme de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void RemplacementPourCase(char *pournom, char *pourprob);
Le code de la fonction deviendrait enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //( snip ) case 0: RemplacementPourCase("nador\0","AFRIQUIA\0"); break; case 1: RemplacementPourCase("nador\0","ATLAS\0"); break; //(snip) // !!!!! n'oublie pas le \0 final des différentes chaines !!!!!
En applicant déjà ces différents conseils, tu devrais arriver à un code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Le_Nom_Type_Qui_Va_Bien mavar; strcpy(mavar.problem,pourprob); strcpy(mavar.nomfich,pourfich); //( snip ) printf("Centre:%s",mavar.nomfich); // ( snip ) //la lecture dans le fichier sous la forme de fscanf(fichier,"%s",mavar.element);
- plus compact
- bien plus facilement lisible, donc, plus compréhensible et donc, plus facilement débuggable
PS: Je me suis encore une fois laissé emporté par ma verve j'espères que vous excuserez la longueur du post
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
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