Fin d un fichier en C
muad_tib
-
marvinrouge -
marvinrouge -
bonjour a tous
j essaye de recuperer les lignes d un ficheir C dans un tableau tampon
voici la fonction que j utilise
while( !feof(f) )
{
j = 0;
//on recupere une ligne entiere dans un tampon
do
{
a = fscanf(f,"%c", &tmp);
ligne[j] = tmp;
j++;
}while(tmp != '\n');
...
}
mais en fait j me rends compte que ca plante quand j recupere la derniere ligne parce ke ma condition d arret n est pas bonne, il s arette pa a la fin du dernier mot mais il continue j usqua ce que mon tableau soit plein et apres il plante... j imagine parce ke y a plus de place dans le tableau
qqun sait il comment est caractérisé la fin d un fichier??
merci
j essaye de recuperer les lignes d un ficheir C dans un tableau tampon
voici la fonction que j utilise
while( !feof(f) )
{
j = 0;
//on recupere une ligne entiere dans un tampon
do
{
a = fscanf(f,"%c", &tmp);
ligne[j] = tmp;
j++;
}while(tmp != '\n');
...
}
mais en fait j me rends compte que ca plante quand j recupere la derniere ligne parce ke ma condition d arret n est pas bonne, il s arette pa a la fin du dernier mot mais il continue j usqua ce que mon tableau soit plein et apres il plante... j imagine parce ke y a plus de place dans le tableau
qqun sait il comment est caractérisé la fin d un fichier??
merci
A voir également:
- Fin d un fichier en C
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
En supposant que ta variable ligne soitt de type char[] ou char*, ajoute la ligne (*) et ça devrait marcher
j = 0;
while( !feof(f) )
{
//on recupere un caractere dans un tampon
fscanf(f,"%c", &tmp);
ligne[j] = tmp;
ligne[j+1] = '\0'; // <==== '\0' indique fin de chaine (*)
j++;
}
printf("on a lu: %s" ligne);
j = 0;
while( !feof(f) )
{
//on recupere un caractere dans un tampon
fscanf(f,"%c", &tmp);
ligne[j] = tmp;
ligne[j+1] = '\0'; // <==== '\0' indique fin de chaine (*)
j++;
}
printf("on a lu: %s" ligne);