sprintf
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 : fr/c/io/snprintf, fr/c/string/atof, fr/c/string/atoi, fr/c/string/atol, fprintf, printf