Lecture tableau à deux dimensions en C
cftqcmp
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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);
}
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:
- Lecture tableau à deux dimensions en C
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
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,
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,