voilà ce que je compte faire avec mon programme:
je veux écrire une fonction qui remplie un tableau de chaine des caractères à partir d'un fichier , en enregistrant chaque ligne du fichier dans une ligne du tableau.
au premier coup ça m'a paru facile a faire , mais j'ai rencontré des difficulté a le réaliser. voici le code que j'ai écrit :
#include <stdio.h>
#include <stdlib.h>
#define L 50//Nombre de ligne
#define C 100//Nombre maximal de caractère dans chaque ligne
void lire(char *tableau[] , int ligne);
int nb;
int main()
{
char tableau[L][C];
int i;
lire(tableau , L);
for(i=0 ; i<nb ; i++)
{
printf("%s" , tableau[i]);
}
getch();
return 0;
}
void lire(char *tableau[] , int ligne)
{
FILE *fichier= NULL;
int i=0;
fichier = fopen("fichier.txt","r");
if(fichier != NULL)
{
while((i<ligne) &&(fgets(&tableau[i] , 50 , fichier) != NULL) )
i++;
nb=i;
fclose(fichier);
}
else
{
printf("ERREUR : Impossible de trouver le fichier\n\n");
}
}
voici le contenu du fichier "fichier.txt" :
salut tout le monde 02
salut tout les zeros 03
bonjour mes amis
c'est mon fichier
Et voici ce que j'obtiens en console :
salusalubonjc'est mon fichierx☺5و"
merci de m'aider , ça fait deux jours que je suis coincé ici.
C'est faux, tu déclares un tableau de pointeurs....or toi tu veux un pointeur sur tableau (c'est à dire un pointeur qui pointe au même endroit que ton tableau 2D déclaré dans le main).
void lire(char (*tableau)[C] , int ligne)
//ou bien
void lire(char tableau[][C] , int ligne)
Il faut renseigné la taille de la deuxième dimension car c'est un tableau déclaré statiquement.
fgets(&tableau[i] , 50 , fichier)
Enlève le "&" car il attend un pointeur et non l'adresse d'un tableau.
j'ai un fichier texte qui contient des lignes de cet format : 100% 77 4490 4491 ==> 588 1966 4489 ( 242 1 )
le programme que je suis entrain de developper permet de remplir la premiere ligne d'un tableau multidimentionnel (matrice) par les nombres qui apparaissent dans chaque ligne : 77 (dans la premiere colonne ) 4490 (dabs la 2eme) etc .. sans mettre le 100% , ==> et les nombres entre parentheses !
et voila le code que j'ai ecrit .
j'espére que vous m'aidez je suis bloquée dans cette premiére etape de ma memoire de recherche
while (fgets(chaine, TAILLE_MAX, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL) { // On affiche la chaîne qu'on vient de lire printf("%s", chaine);
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
C'est faux, tu déclares un tableau de pointeurs....or toi tu veux un pointeur sur tableau (c'est à dire un pointeur qui pointe au même endroit que ton tableau 2D déclaré dans le main). Il faut renseigné la taille de la deuxième dimension car c'est un tableau déclaré statiquement.