copier le contenue d'un fichier dans un tableau - C - Programmation
Marsh Posté le 08-12-2013 à 10:38:22
Déjà, Dimension n'est pas initialisé, donc ta boucle risque de prendre un certain temps.
Ensuite, ton tab est un pointeur sur tableau de char, et n'est pas initialisé non plus.
Dans ta copie, tu décale que d'une case dans tab, donc tu écrasera les anciennes lettres..
Il faut commencer par allouer ton tab, comme tu ne connais pas la taille du fichier, fais juste un pointeur que tu ré-allouera.
Code :
|
Marsh Posté le 08-12-2013 à 12:09:56
merci j'ai corrigé mon code mais après le remplissage de tableau de caractére le code se bloque voici le code corrigé
const char *stock;
char **tab;
tab= (char**)malloc(dimension*sizeof(char*));
int dimension;
int i,l,k,n,x,a,j,p;
char chaine[1000];
//remplissage du tableau
fichier = fopen("easyin.txt", "r" );
i=0;
if (fichier == NULL)
{
printf("Impossible to open the file\n" );
exit(42);
}
while (dimension >= 0){
stock= fgets(chaine, 1000, fichier);
tab[i] = (char*)malloc((strlen(stock)+1)*sizeof(char));
strcpy(tab[i],stock);
--dimension;
printf("%s",tab[i]);
i++;
}
fclose(fichier);
Marsh Posté le 08-12-2013 à 00:12:42
bonjour
s'il vous plait je suis entrain de coder un programme qui tend à lire le contenue d'un fichier et le copier dans un tableau mais je suis bloquée
dans cette partie de code
//remplissage du tableau
FILE *fichier=NULL;
char chaine[100];
int dimension,int i;
char *tab[100];
fichier = fopen("easyin.txt", "r" );
i=0;
do
{
if (fgets(chaine, 100, fichier) != NULL)
{
strcpy(*(tab+i),chaine);
i++;
}
}
while(i>(dimension-1));
merci d'avance