Traductions de cette page?:

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 : snprintf, atof, atoi, atol, fprintf, printf