Lecture tableau à deux dimensions en C

Fermé
cftqcmp - 25 juil. 2010 à 13:57
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 juil. 2010 à 19:25
Bonjour,
j'ai un fichier .txt contenant des float de la forme suivante ( N lignes et 3 colonnes)
a0 b0 c0
a1 b1 c1
...
aN-1 bN-1 cN-1

je voudrais créer un fonction qui prend en paramètre un tableau (exp: Tab[N][3]) et qui le remplit avec les données du fichier.
j'ai beau essayé mais avec "pointeur d'un pointeur" j'arrive pas.
Merci de votre aide.


voici ce que j'ai essayé en gors:
void lecture( float (*Tab) [N], N);
{
int i;
FILE *fp;
if((fp=fopen("fichier.txt", "r"))==NULL)
{ fprintf(stderr, "Erreur de lecture du fichier.\n");
exit(EXIT_FAILURE); }
for(i=0;i<N;i++)
{
fscanf(fp,"%f", Tab[i]);
fscanf(fp,"%f", Tab[i]+1);
fscanf(fp,"%f", Tab[i]+2);


}
fclose(fp);
}


A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
25 juil. 2010 à 19:25
Bonjour,

L'erreur vient du prototype de ta fonction lecture.
void lecture( float (*Tab) [N], N);
Ce serait correct si le tableau était : float Tab[3][N];
De plus j'ai pas bien compris le deuxième argument.
T'auras bien compris, pour corriger, il suffit d'inverser les dimensions, ce qui donne :
void lecture (float (*Tab)[3])
Ou tout simplement, tu peux utiliser son équivalent : void lecture (float Tab[N][3]);

Cdlt,
0