En reprenant le code precedant, et en modifiant deux trois petites choses (notamment un typedef en plus car je suis plus a l'aise avec) et des corrections de syntaxe:
#include <stdio.h>
typedef struct {
char date[10], time[10];
int v;
float a,b,c,d;
}ENTREE;
/*on retourne data, donc il faut l'indiquer*/
ENTREE* ma_fonction(char *ma_variable) {
ENTREE data[1000] ; # 1000 lignes pour le fichier
/* Faut les declarer si on veut les utiliser dans le fscanf)*/
char date[10];
char time[10]
int v;
float a,b,c,d;
/**********/
int i=0;
FILE *fp;
fp = fopen("ma_variable", "r");
while(!(feof(fp))) {
fscanf(fp, "%s %s %d %f %f %f %f", &date, &time, &v, &a, &b, &c, &d);
strcpy(data[i].date, date);
strcpy(data[i].time, time);
data[i].v = v);
data[i].a = a);
data[i].b = b);
i++;
}
return data; /*important le ; ^ ^ */
}
int main(void) {
ENTREE* ma_structure=NULL;
ma_strucutre=ma_fonction("1.csv");
return EXIT_SUCCES;
}
Mais a titre personnel, j'utiliserai plutot un tableau dynamique (histoire d'utiliser juste ce qu'il faut en memoire ^^ ).
En fait, une question me taraude : es tu familiarisé avec la notion de pointeurs, de pointeurs sur void, de tableau dynamique ? Car sinon, tu va vite etre bloqué sur plein de truc qui sont somme toute pas compliqué a faire lorsqu'on a bien assimilé les pointeurs.
[^] # Re: base de la programmation
Posté par Guillaume Rossignol . En réponse au message Question pour C gourou !. Évalué à 2.