Merci pour tout ces conseils, mais toujours impossible de résoudre le problème...
La solution proposée par imalip, j'ai essayé aussi, mais sans résultat.
L'idée était de passer en argument à la fonction qui récupère les données un pointeur sur la structure de sorte que la fonction la remplisse. Etant relativement débutant en C, je me suis cassé la tete (notamment ;-) a essayer de faire en sorte que ça fonctionne ; impossible. Voici le code...
Si quelqu'un peut me sortir de ce mauvais pas je lui paye une biere !
#include <stdio.h>
struct enreg {
char date[20], heure[20];
int v;
float a,b,c,d;
};
/*
* Lit le fichier et enregistre les elements dans une structure data accessible globalement
*
*/
void fct(struct enreg *s) {
char chaine[256], date[20], heure[20];
int v;
float a,b,c,d;
int i=0;
[^] # Re: base de la programmation
Posté par zedis . En réponse au message Question pour C gourou !. Évalué à 1.
La solution proposée par imalip, j'ai essayé aussi, mais sans résultat.
L'idée était de passer en argument à la fonction qui récupère les données un pointeur sur la structure de sorte que la fonction la remplisse. Etant relativement débutant en C, je me suis cassé la tete (notamment ;-) a essayer de faire en sorte que ça fonctionne ; impossible. Voici le code...
Si quelqu'un peut me sortir de ce mauvais pas je lui paye une biere !
#include <stdio.h>
struct enreg {
char date[20], heure[20];
int v;
float a,b,c,d;
};
/*
* Lit le fichier et enregistre les elements dans une structure data accessible globalement
*
*/
void fct(struct enreg *s) {
char chaine[256], date[20], heure[20];
int v;
float a,b,c,d;
int i=0;
FILE *fp = fopen("1.txt", "r");
while(fgets(chaine, sizeof(chaine), fp)) {
sscanf(chaine, "%s %s %d %f %f", date, heure, &v, &a, &b );
(s+i)->v = v;
printf("%d \n", i);
i++;
}
fclose(fp);
}
/*
* Main
*
*/
main() {
struct enreg x[1000000]; // cree la structure x
// ? ? ? void fct(struct enreg *y);
fct(&x[1000000]);
}