Accueil
![]() |_Accueil Langage C |_<stdio.h> |_clearerr |_fclose |_feof |_ferror |_fflush |_fgetc |_fgets |_file |_fopen |_fprintf |_fputc |_fputs |_fread |_fscanf |_fwrite |_getc |_getchar |_gets |_perror |_printf |_putc |_putchar |_puts |_remove |_rename |_scanf |_sprintf |_sscanf |_stderr |_stdin |_stdout |
Fonctions fprintf, printf et sprintfLa vidéoUtilisation des fonctions fprintf, printf et sprintf Entête à inclure#include <stdio.h> // <cstdio> en C++ Fonctions fprintf, printf et sprintfint fprintf( FILE * stream, const char *format, ... ); // Avant C99 int fprintf( FILE * restrict stream, const char * restrict format, ... ); // A partir de C99 int printf( const char *format, ... ); // Avant C99 int printf( const char * restrict format, ... ); // A partir de C99 int sprintf( char * buffer, const char *format, ... ); // Avant C99 int sprintf( char * restrict buffer, const char * restrict format, ... ); // A partir de C99
Ces trois fonctions sont à la fois proches et différentes. Le point commun, c'est qu'elles permettent toutes de formater des données à partir
d'un langage de formatage simple et efficace. Par contre, la chaîne formatée n'est pas forcément envoyées dans un stream (du moins pour
La fonction
Comment fonctionne le langage de formatage ? En fait c'est relativement simple : une chaîne de caractères définie des points d'injections
pour les paramètres qui sont passés à la suite du paramètres de format. Ces points d'injections sont typés et éventuellement formatés. Par
exemple, le format Le tableau suivant vous propose quelques syntaxes de points d'injection relativement classiques. Vous pouvez bien entendu cumuler autant de points d'injections dans votre format que nécessaire (pour peu, bien entendu, que vous passiez ensuite les valeurs attendues en paramètres).
|
sprintf
, permet de spécifier l'emplacement mémoire dans lequel stocker la
nouvelle chaîne formatée à produire.
Dans tous les cas, soit le nombre de caractères produit dans la chaîne formatée vous sera renvoyée, soit, en cas d'erreur, la valeur EOF sera renvoyée.
Il vous faudra alors consulter la variable errno
pour obtenir de plus amples informations sur l'erreur constatée.
#include <stdio.h> #include <stdlib.h> int main( int argc, char * argv[] ) { FILE * inputFile; argc--; argv++; if ( argc == 0 ) { printf( "Usage: sample filename...\n" ); exit( 0 ); } inputFile = fopen( argv[0], "a" ); if ( inputFile == NULL ) { fprintf( stderr, "Cannot open file %s\n", argv[0] ); exit( 0 ); } fprintf( inputFile, "Appending a new message in the file\n" ); fclose( inputFile ); return 0; }
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :