bonsoir,

j'ai 2 procédures , créer(), et afficher().

créer : créer un fichier et ajoute un enregistrement
afficher: affiche ce que le fichier contient.

voila le code:

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
 
#include<stdio.h>
#include <string.h>
# include <fstream.h> 
#include<conio.h>
   #include <stdlib.h>
 
typedef struct regle{char condition[9]; int action;
                  float fit;
	    }regle;
 regle r;
 
   FILE * in;
 
 
/*********************************************/
  void affich()
  {      
 
	 in=fopen("so.$$$","r");
 
 
		while(!feof(in))
		 {
		       fread(&r,sizeof(regle),1,in);
 
 
                        printf("%s",r.condition);
                       printf("  ");
                        printf("%d",r.action);
                        printf("  ");
                        printf("%f",r.fit);
 
		  }
 
		fclose(in);
 }
 
 /*************************************/
 void creat()
{
  in=fopen("so.$$$","w");
  fin=false;
 
           scanf("%s",r.condition );
           scanf("%d",&(r.action));
           scanf("%f",&(r.fit));
 
           fwrite(&r,sizeof(regle),1,in);
 
           fclose(in);
}
 
  main()
 {
 creat();
 affich();
  getchar();
  getchar();
}
lors de l'affichage je trouve l'enregistrement est affiché 2 fois !!!!!!!

j'ai exécuté avec f8 , j'ai trouver que le compilateur entre dans la boucle de l'affichage 2 fois pourtant il y a un seul enregistrement !!!!!!

merci d'avance