Bonjour,

Je souhaite récupérer des données numériques (double) d'un fichier (donnees.txt) afin de remplir mon tableau tabx[]. Je n'arrive pas à remplir mon tabx avec les données de mon fichier. J'obtiens des valeurs initialisées dans le tableau tableaux[] du main, c'est-à-dire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
1.0
0.0
0.0
0.0
Je n'arrive pas à comprendre pourquoi les valeurs initialisées ne sont pas remplacées par les valeurs lues dans le fichier donnees.txt.

le fichier donnees.txt contient ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
1.0
2.0
3.0
4.0
Et le code associé est le suivant :

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
 
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
// Prototype de la fonction 
 
void Monprogramme(double tabx[],double taby[]);
 
int main(int argc, char *argv[])
{
 
	double tableauX[4] = {1,0,0,0};
	double tableauY[4] = {12,3,2,1};
 
	Monprogramme(tableauX,tableauY);
 
    return 0;
}
 
 
void Monprogramme(double tabx[],double taby[])
{
 
int i,l;
unsigned int dimtab;
 
 
// Lecture du fichier des donnees pour la caracterisation de la morphologie fractale
 
unsigned int c1,nligfich=0;
 
FILE *fichier;
 
/* Ouverture en lecture du fichier donnees.txt */
 
fichier=fopen("donnees.txt","r");
 
if (fichier != NULL){
 
/* On compte le nombre de points (nombre de lignes) du fichier donnees.txt */
 
while ((c1 = getc(fichier)) != EOF){
 
    if (c1 == '\n')
        ++nligfich;
}
 
			dimtab=nligfich;
 
           /* Lire la premiere colonne du fichier donnees.txt et ranger les valeurs dans le tableau tabx */
 
			for (l=0 ; l< dimtab ; l++)
			{
			fscanf(fichier,"%lf",&tabx[l]);
			fprintf(stdout,"%lf\n",tabx[l]);
 
			}
 
fclose(fichier);
 
}
else{
 
	fprintf(stdout,"\n");
	fprintf(stdout,"****************************************************************\n");
	fprintf(stderr,"Attention erreur 1000: fichier  %s  introuvable \n","donnees.txt");fflush(stderr);
	fprintf(stdout,"****************************************************************\n");
	fprintf(stdout,"\n");
 
	exit(1000);
}
 
}
J'ai déjà utilisé avec succès un programme similaire donc je ne vois pas d'où vient le problème. Problème d'initialisation? De passage des paramètres à la fonction?

Merci de votre aide !



Merci d'avance.