sprintf_s, swprintf_s

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdio.h


Header-Datei

stdio.h


Kategorie

Funktionen für die formatierte Eingabe/Ausgabe


Prototyp

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, ... );


Beschreibung

Ersetzt sprintf und fügt Sicherheitserweiterungen hinzu.


sprintf_s entspricht sprintf mit Ausnahme der Laufzeiteinschränkung, die sicherstellt, dass s und format keine Null-Zeiger sind. Andere Einschränkungen erfordern, dass alle Formatbezeichner in format, die %s sind, jeweils keine Null-Argumente haben und dass der Bezeichner %n in format nicht verwendet wird.

Wenn eine Verletzung von Laufzeiteinschränkungen auftritt, s kein Null-Zeiger ist und n größer als Null und kleiner als RSIZE_MAX ist, dann setzt die Funktion '\0' auf s[0].

Im Gegensatz zu snprintf_s, snwprintf_s löst die Funktion eine Laufzeiteinschränkungs-Exception aus, wenn n größer als das Array ist, auf das s zeigt.


Rückgabewert

Bei erfolgreicher Ausführung gibt sprintf_s die Anzahl der ausgegebenen Zeichen (ohne das abschließende '\0') zurück. Bei einem Programmierfehler gibt sprintf_s einen negativen Wert zurück. In allen anderen Fehlerfällen wird Null zurückgegeben.

Beispiel

#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ät

POSIX Win32 ANSI C ANSI C++

sprintf_s

+

+

+

+

swprintf_s

+

+

+

Siehe auch