sprintf_s, swprintf_s

De RAD Studio
Aller à : navigation, rechercher

Remonter à stdio.h - Index


Fichier 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 s, rsize_t n, const wchar_t * restrict format, ...);

Description

Remplace sprintf en ajoutant des améliorations relatives à la sécurité.

sprintf_s est équivalente à sprintf, à l'exception de contraintes d'exécution qui interdisent à s et format d'être des pointeurs null. D'autres contraintes nécessitent que chaque spécificateur de format qui est %s ait des arguments non null respectifs et que le spécificateur %n ne soit pas utilisé dans format.

Si une violation de contrainte d'exécution se produit, si s n'est pas un pointeur null, et si n est supérieur à zéro et inférieur à RSIZE_MAX, la fonction place alors '\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 succès, sprintf_s renvoie le nombre de caractères de la sortie, sans tenir compte du caractère de terminaison '\0'. En cas d'erreur d'encodage, sprintf_s renvoie une valeur négative. Tout autre cas d'erreur renvoie zéro.

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