Vous connaissez tous le fameux jeu où il faut trouver des erreurs incrustés dans une image ^^
Sur ce principe je lance ce nouveau jeu ( humour mais je galère VRAIMENT VRAIMENT )
Voici mon programme:

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
 
/*****************************************************************
File:   lecture.c
 
Author: Johann 
 
Brief: Source du bloc lecture des champs
 
*******************************************************************/
#include <stdio.h>
#include <stdlib.h>
 
/* #include "lecture.h" 
/*! --------------------------------------------------------------
*/
 
typedef struct valeur {
 
	float ACR;
	float DCR;
	float ACIR;
	float DCIR;
	}VALEUR;
 
   VALEUR lecture (VALEUR nonFiltre){ 
 
      int reception[21];
      char usb;
      int i,illicite,compt;
      int ACR_i,ACIR_i,DCR_i,DCIR_i;
      FILE * entree;
		nonFiltre.ACR = 0;
      nonFiltre.ACIR = 0;
      nonFiltre.DCR = 0;
      nonFiltre.DCIR = 0;
		ACR_i=0;
		ACIR_i=0;
		DCR_i=0;
		DCIR_i=0;
 
      illicite=0;		
      compt=0;
		printf("entree\n");
      entree = fopen("record1.dat", "r"); // on dit au pointeur de lire dans le fichier record1.dat
		printf("%d\n",entree);
   	int transf;
		printf("zero\n");
 
      do
      {
 
         fscanf(entree, "%c", &usb); // on prend l'octet
 
         transf = (int)usb-48; // char=>int
			printf("un\n");
         if (transf != -35 && compt!=20){ // si on a pas BS
            reception[i] = transf; // on place le chiffre, numéro correspond à un caractère dans le tableau
            compt++; // on incrémente pour ne pas réécrire dans la même case
				i++;
				printf("deux\n");
         }	
         else if (compt <=19) { // le cas où un BS s'introduit avant son heure et donc qu'un problème s'est produit
            for(i=0; i<= 20; i++){ // réinitialisation du tableau
               reception[i]=0;
               compt=20; // le programme réenvoi les anciennes valeurs qui ne devraient pas être très éloigné de la réalité
					printf("trois\n");
            }
         }
 
         else{
            for(i=0; i<=20; i++){
					printf("%d\n",reception[i]);
               if(((reception[i]<= -1) && (reception[i]>=10)) || (reception[i]!=-35) || (reception[i]!=-4) || (reception[i]!=-38)) { //vérification d'un caractère illicite
                  illicite=1;}
						printf("quatre\n");
            }
            if (illicite ==1) {
					printf("cinq\n");
               for(i=0; i<= 20; i++){ // réinitialisation du tableau
                  reception[i]=0;}  
            }		 
            else { // si tous les chiffres ont été validé, on extrait les valeurs
					printf("six\n");
               ACR_i= 1000*reception[0]+100*reception[1]+10*reception[2]+reception[3];
               DCR_i= 1000*reception[5]+100*reception[6]+10*reception[7]+reception[8];
               ACIR_i= 1000*reception[10]+100*reception[11]+10*reception[12]+reception[13];
               DCIR_i= 1000*reception[15]+100*reception[16]+10*reception[17]+reception[18];
            }
            compt++; // on sort de la boucle
         } // on sort des if
 
      }while(compt<=20);
      nonFiltre.ACR = (float)ACR_i;  // conversion en float
      nonFiltre.ACIR = (float)ACIR_i;
      nonFiltre.DCR = (float)DCR_i;
      nonFiltre.DCIR = (float)DCIR_i;
 
      return nonFiltre;		     
   }
 
 
int main() {
 
VALEUR nonFiltre;
nonFiltre = lecture (nonFiltre);
printf ("%f %f %f %f",  nonFiltre.ACR, nonFiltre.DCR, nonFiltre.ACIR, nonFiltre.DCIR);
 
return 0;
}
le fichier où prendre les valeurs
2241,2030,2219,2030

2185,2029,2183,2029

2335,2029,2208,2029

2320,2028,2325,2028

2297,2028,2195,2028

2282,2028,2165,2028

2342,2027,2282,2027

2220,2027,2366,2027

2065,2026,2233,2026

2268,2026,2353,2026

2562,2026,2231,2026

2346,2025,2326,2025

2488,2025,2432,2025

2450,2024,2566,2024

2624,2024,2702,2024

2630,2024,2719,2024

2602,2023,2490,2023

2537,2023,2375,2023

2468,2023,2695,2023

2323,2022,2614,2022

2648,2022,2489,2022

2488,2021,2674,2021

2550,2021,2507,2021

2558,2021,2716,2021

2679,2020,2497,2020

2460,2020,2774,2020

2877,2019,2950,2019

2638,2019,2688,2019

2832,2019,2937,2019

2826,2018,3032,2018

2753,2018,2777,2018

2813,2018,2686,2018

2652,2017,2635,2017