fgets() : lit une chaîne de caractères dans un fichier.
Prototype:
char * fgets (char * s, int n, FILE * fic);
dans: <stdio.h>
Description:
Semblable à gets mais lit dans le fichier fic et s'arrête après n-1 caractères lus, ou quand '\n' est lu, ou quand la fin de fichier est rencontrée.
Si le caractère '\n' est lu, il figure dans s.
Valeur renvoyée:
- NULL si la fin de fichier est rencontrée, et aucun caractère n'est lu;
- NULL si une erreur de lecture a lieue (par exemple descripteur de fichier invalide)
- sinon s est retourné
Voir aussi:
Portabilité:
Exemple:
#include
int main(void) {
FILE * fic;
char chaine1[] = "Première ligne\n";
char chaine2[] = "C'est un test de ligne de plus de 19 caractères";
char msg[20];
/* Ouverture d'un fichier */
fic = fopen("fichier.dat", "w+");
/* Ecrire deux chaînes dans le fichier */
fwrite(chaine1, strlen(chaine1), 1, fic);
fwrite(chaine2, strlen(chaine2), 1, fic);
/* Se positionner au début du fichier */
fseek( fic, 0, SEEK_SET);
/* Lire une ligne dans le fichier, et l'afficher */
fgets( msg, sizeof(msg), fic);
printf( "%s", msg);
/* Lire l'autre ligne, et l'afficher */
fgets( msg, sizeof(msg), fic);
printf( "%s", msg);
/* Pointer au début du fichier, et faire un parcours complet */
printf("\nParcours complet:\n");
fseek( fic, 0, SEEK_SET);
/* Lire les chaînes de caractères */
while( fgets( msg, sizeof(msg), fic)!=NULL )
printf("%s", msg);
fclose(fic);
putchar('\n');
return 0;
}