sprintf_s, swprintf_s

De RAD Studio

Remonter à stdio.h

Fichier d'en-tête

stdio.h

Catégorie

Fonctions d'entrée/sortie formatées

Prototype

int sprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...);

int swprintf_s(wchar_t* restrict buffer, rsize_t bufsz, const wchar_t* restrict format, ... );

Description

Remplace sprintf tout en renforçant la sécurité.

sprintf_s est équivalente à sprintf, sauf pour les contraintes d'exécution qui imposent que s et format ne soient pas des pointeurs null. D'autres contraintes exigent que chaque spécificateur de format %s dans format ait un argument non null et que le spécificateur %n ne soit pas utilisé dans format.

Si une violation de contrainte d'exécution se produit et que s n'est pas un pointeur null, et que n est supérieur à zéro et inférieur à RSIZE_MAX, la fonction place '\0' dans s[0].

A l'inverse de snprintf_s, snwprintf_s, dans le cas où n est plus grand que le tableau pointé par s, elle déclenche une exception de contrainte d'exécution.

Valeur renvoyée

En cas de réussite, sprintf_s renvoie le nombre de caractères, sans inclure le '\0' terminal. En cas d'erreur de codage, sprintf_s renvoie une valeur négative. Pour les autres types d'erreurs, zéro est renvoyé.

Exemple

#include <stdio.h>
#include <math.h>
int main(void)
{
   char buffer[80];
   sprintf_s(buffer, 40, "An approximation of Pi is %f\n", M_PI);
   puts(buffer);
   return 0;
}

Portabilité

POSIX Win32 ANSI C ANSI C++

sprintf_s

+

+

+

+

swprintf_s

+

+

+

Voir aussi