FPRINTF |
Imprime avec format dans le fichier |
---|---|
Langage C | stdio.h |
Syntaxe
int fprintf(FILE *ptrfichier,const char *texte,...); |
Paramètres
Nom | Description | |
---|---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier | |
texte | Ce paramètre permet d'indiquer le texte à afficher. Il est a noter que un ou plusieurs des spécificateurs suivants peuvent être inclus dans le texte et il utilisera un argument supplémentaire pour chaque spécificateurs : | |
Spécificateur | Description | |
%c | Ce spécificateur indique d'insérer à cette position un caractère contenu dans la liste des arguments après le texte | |
%d | Ce spécificateur indique d'insérer à cette position un entier sous forme décimal contenu dans la liste des arguments après le texte | |
%f | Ce spécificateur indique d'insérer à cette position un nombre à virgule flottante contenu dans la liste des arguments après le texte | |
%i | Ce spécificateur indique d'insérer à cette position un entier contenu dans la liste des arguments après le texte | |
%o | Ce spécificateur indique d'insérer à cette position un entier sous forme octal contenu dans la liste des arguments après le texte | |
%s | Ce spécificateur indique d'insérer à cette position une chaîne de caractères contenu dans la liste des arguments après le texte | |
%x | Ce spécificateur indique d'insérer à cette position un entier sous forme hexadécimal contenu dans la liste des arguments après le texte | |
Il est possible d'ajouter une précision du nombre décimal afficher en insérant le nombre entre le symbole de pourcentage et la lettre. |
Description
Cette fonction effectue l'écriture de texte selon un certain format dans un fichier.
Algorithme
MODULE FPRINTF(file, format_string, ...arguments) SI file est NULL ALORS RETOURNE Erreur "Fichier non ouvert" FIN SI Initialiser une chaîne de caractères vide output_string BOUCLE POUR CHAQUE caractère dans format_string FAIRE SI caractère est '%' ALORS Avancer au caractère suivant SI caractère est un spécificateur de format valide (comme 'd', 's', 'f',...) ALORS Récupérer le paramètre correspondant de ...arguments Convertir le paramètre au format spécifié Ajouter le paramètre formaté à output_string SINON Ajouter '%' et le caractère actuel à output_string FIN SI SINON Ajouter le caractère actuel à output_string FIN SI FIN BOUCLE POUR CHAQUE Écrire output_string dans file RETOURNE le nombre de caractères écrits |
Remarques
- Écriture formatée dans un fichier : La fonction fprintf permet d'écrire des données formatées dans un fichier. Elle fonctionne comme printf, mais avec la possibilité de spécifier un flux de fichier en tant que premier paramètre, ce qui permet d'envoyer des sorties dans des fichiers autres que stdout.
- Puissant système de formatage : Grâce à ses spécificateurs comme %d, %f, %s,..., fprintf offre une flexibilité considérable pour écrire des données dans un format précis. Cela est utile pour générer des fichiers texte lisibles par l'humain ou compatibles avec des systèmes tiers.
- Gestion des flux de fichier : fprintf nécessite un pointeur vers un flux de type FILE* ouvert en écriture. Si le fichier n'est pas ouvert correctement, ou si les permissions sont insuffisantes, l'écriture échouera, et la fonction renverra un résultat négatif.
- Retourne le nombre de caractères écrits : fprintf renvoie le nombre total de caractères écrits dans le flux de fichier, ou une valeur négative si une erreur survient. Cette information peut être utilisée pour vérifier si l'opération s'est bien déroulée.
- Attention aux erreurs de formatage : Une mauvaise correspondance entre les spécificateurs de format et les paramètres fournis peut entraîner des comportements indéfinis, des données incorrectes ou même des plantages. Il est donc crucial de s'assurer que les types des données correspondent aux spécificateurs.
- Utilisation des tampons : Comme la plupart des fonctions de manipulation de fichiers en C, fprintf utilise un tampon pour optimiser les écritures. Les données ne sont pas immédiatement enregistrées sur le disque, ce qui nécessite l'utilisation de fflush ou fclose pour garantir leur persistance.
- Applications courantes : fprintf est souvent utilisée pour écrire des journaux de bord, des fichiers de configuration ou des rapports. Sa capacité à produire des sorties formatées rend la fonction idéale pour structurer des informations complexes dans des fichiers lisibles ou facilement analysables.
Exemple
Voici divers exemple d'affichages de format dans un fichier :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- FILE * Handle = fopen("monfichier.txt", "w+");
- if(Handle != NULL) {
- fprintf(Handle,"Boujour!\n");
- fprintf(Handle,"Entier %%i = %i\n",15);
- fprintf(Handle,"Hexadecimal %%x = %x\n",16);
- fprintf(Handle,"Octal %%o = %o\n",16);
- fprintf(Handle,"Chaine de caracteres %%s = %s\n","message");
- fprintf(Handle,"Reel %%f = %f\n",123.45);
- fprintf(Handle,"Reel %%f = %.2f\n",123.45);
- fclose(Handle);
- }
- return 0;
- }
on obtiendra le résultat suivant dans le fichier «monfichier.txt» :
Boujour!Entier %i = 15
Hexadecimal %x = 10
Octal %o = 20
Chaine de caracteres %s = message
Reel %f = 123.450000
Reel %f = 123.45
Voir également
Langage de programmation - C - Référence de procédures et fonctions - fscanf
Langage de programmation - C - Référence de procédures et fonctions - fgetc
Langage de programmation - C - Référence de procédures et fonctions - fputc
Langage de programmation - C - Référence de procédures et fonctions - fputs
Langage de programmation - C - Référence de procédures et fonctions - printf
Langage de programmation - C - Référence de procédures et fonctions - fgets
Langage de programmation - C++ - Référence de procédures et fonctions - fprintf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 109.