Syntaxe :
#include <cstdio> int sprintf(char *buf, const char *format, ... );
La fonction sprintf()
fonctionne exactement de la même manière que printf()
à la différence que les données sont écrite dans la chaîne de caractères buf
.
La valeur de retour est le nombre de caractères écrits dans la chaîne.
Exemple d'utilisation :
char string[50]; int nb_de_fichier = 0; sprintf(string, "fichier.%d", nb_de_fichier ); nb_de_fichier ++; fichier = fopen(string, "w");
Remarquez que sprintf()
fait l'opération inverse d'une fonction comme atoi()
(ou sscanf()
) -- là où atoi()
convertit une chaîne de caractères en nombre,
sprintf()
peut être utilisée pour convertir un nombre en une chaîne de caractères.
Par exemple, le code ci-dessous utilise sprintf()
pour convertir un entier en
une chaîne de caractères :
char res[100]; int nb = 24; sprintf(res, "%d", nb);
Ce code est similaire sauf qu'il convertit un nombre à virgule flottante en une chaîne de caractères :
char res[100]; float nb = 3.14159; sprintf(res, "%f", nb);
Attention, cette fonction ne vérifie pas la taille des données écrite et peut provoquer un dépassement de tampon.
snprintf()
est une alternative plus sûre à cette fonction.
Sujets connexes : snprintf, atof, atoi, atol, fprintf, printf