J'ai encore un probleme avec mon programme :
Suivant le fichier que je lui donne en entree avec differentes valeurs soient il marche bien soit il donne des valeurs errones.
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 void matrix_load (char const *file_name, float t[8][8]) { FILE *fpfile = fopen (file_name, "r"); if (fpfile != NULL) { int i = 0; // Stop on end of file or error char ligne[32]; while (i < 8 && fgets (ligne, sizeof ligne, fpfile) != NULL) { // We read the input file float a[8]; int n = sscanf (ligne, "%f %f %f %f %f %f %f %f" ,&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); //fscanf (fpfile, "%f %f %f %f %f %f %f %f" // ,&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7]); if (n == 8) { int j; for (j = 0; j < 8; j++) { t[i][j] = a[j]; printf("la valeur a[j] : %f \n",a[j]); } i++; } else { break; } } } else { fprintf (stderr, "Error in load_block(): could not open file %s!\n", file_name); exit (EXIT_SUCCESS); } }
En effet dans le main :
si je lui donne ce fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 float t[8][8]; matrix_load(file_name1,t); /** display t **/ int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) { printf ("%4f ", t[i][j]); } printf ("\n"); }
0 255 255 255 255 255 255 255
1 255 255 255 255 255 255 255
2 255 255 255 255 255 255 255
3 255 255 255 255 255 255 255
4 255 255 255 255 255 255 255
5 255 255 255 255 255 255 255
6 255 255 255 255 255 255 255
7 255 255 255 255 255 255 255
il affiche correctement ces valeurs .
En revanche avec ce fichier :
0 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255
il m'affiche :
je pete un cable ....0.000000 255.000000 255.000000 255.000000 255.000000 255.000000 255.000000 255.0
00000
255.000000 255.000000 255.000000 255.000000 255.000000 255.000000 255.000000 255
.000000
0.000000 0.000000 167581756884223262720.000000 0.000000 167581932806083706880.00
0000 0.000000 0.000000 148978882159369519104.000000
172378090487372840960.000000 167581756884223262720.000000 0.000000 6025427890444
525582814466345021734912.000000 0.000000 0.000000 167581756884223262720.000000 0
.000000
172321566793612132352.000000 163866287191642603520.000000 0.000000 1489802191655
08894720.000000 0.000000 0.000000 0.000000 153015004626981748736.000000
167581756884223262720.000000 6048254474802835309647217479640940544.000000 0.0000
00 6048201233477625724012354618106314752.000000 164654487495176617984.000000 Na
N 0.000000 0.000000
0.000000 0.000000 0.000000 163444197871878930432.000000 164196457339324203008.00
0000 0.000000 8964825044814038327384685068419072.000000 0.000000
0.000000 163866287191642603520.000000 0.000000 162247331086533132288.000000 0.00
0000 147871471640059576320.000000 0.000000 0.000000Que faire ?
Partager