fgets ()- Lecture d'une chaîne
Format
#include <stdio.h>
char *fgets (char *string, int n, FILE *stream);Niveau de langue
American National Standards Institute
Unités d'exécution protégées
Oui
Description
La fonction fgets() lit les caractères à partir de la position stream en cours jusqu'au premier caractère de nouvelle ligne (\n) inclus, jusqu'à la fin du flux ou jusqu'à ce que le nombre de caractères lus soit égal à n-1, la première valeur étant retenue. La fonction fgets() stocke le résultat dans chaîne et ajoute un caractère null (\0) à la fin de la chaîne. La chaîne inclut le caractère de nouvelle ligne, s'il est lu. Si n est égal à 1, la chaîne est vide.
Valeur renvoyée
La fonction fgets() renvoie un pointeur vers la mémoire tampon string si elle aboutit. Une valeur de retour NULL indique une erreur ou une condition de fin de fichier. Utilisez les fonctions feof() ou ferror() pour déterminer si la valeur NULL indique une erreur ou la fin du fichier. Dans les deux cas, la valeur de la chaîne n'est pas modifiée.
La fonction fgets() n'est pas prise en charge pour les fichiers ouverts avec type=record.
- Valeur
- Signification
- EBADF
- Le pointeur de fichier ou le descripteur n'est pas valide.
- CONVERT
- Une erreur de conversion s'est produite.
- ENOTREAD
- Le fichier n'est pas ouvert pour les opérations de lecture.
- EGETANDPUT
- Une opération de lecture non autorisée s'est produite après une opération d'écriture.
- ERECIO
- Le fichier est ouvert pour les entrées-sorties d'enregistrement.
- ESTDIN
stdinne peut pas être ouvert.- ERREUR D'E-S
- Une erreur d'E-S irrémédiable s'est produite.
- EIORECERR
- Une erreur d'E-S remédiable s'est produite.
Exemple
#include <stdio.h>
#define MAX_LEN 100
int main(void)
{
FILE *stream;
char line[MAX_LEN], *result;
stream = fopen("mylib/myfile","rb");
if ((result = fgets(line,MAX_LEN,stream)) != NULL)
printf("The string is %s\n", result);
if (fclose(stream))
perror("fclose error");
}