Leçon 50 : E/S de fichiers Partie 4 : E/S de chaînes (fputs, fgets)
Ces fonctions gèrent la lecture et l'écriture de lignes entières ou de chaînes de caractères dans les fichiers.
Écrire une chaîne : fputs()
Écrit une chaîne terminée par un caractère nul dans le flux de fichier spécifié. Important : fputs n'ajoute pas automatiquement de caractère de saut de ligne (\n). Vous devez l'ajouter manuellement.
Syntaxe : int fputs(const char *str, FILE *flux);
c FILE *fp = fopen("log.txt", "a"); // Mode ajout (append)
if (fp != NULL) { fputs("Ceci est la ligne un.", fp); fputs("\n", fp); // Saut de ligne manuel fputs("Ceci est la ligne deux.\n", fp); fclose(fp); }
Lire une chaîne (Ligne) : fgets()
Lit une chaîne (jusqu'à une longueur spécifiée) depuis le flux jusqu'à ce qu'un caractère de saut de ligne soit rencontré, que la fin du fichier soit atteinte ou que la taille maximale soit atteinte. Elle inclut le caractère de saut de ligne s'il est trouvé.
Syntaxe : char *fgets(char *str, int n, FILE *flux);
str: Tampon pour stocker la chaîne lue.n: Nombre maximum de caractères à lire (taille du tampon).flux: Le flux du fichier.
c char tampon[100]; FILE *fp = fopen("log.txt", "r");
if (fp != NULL) { // Lit jusqu'à 99 caractères + \0 while (fgets(tampon, sizeof(tampon), fp) != NULL) { printf("Lu : %s", tampon); } fclose(fp); }
Remarque : fgets est généralement plus sûr que fscanf pour lire des chaînes car il évite les dépassements de tampon en limitant la taille de l'entrée.