sprintf_s, swprintf_s

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdio.h - Index


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

Beschreibung

Ersetzt sprintf und fügt Sicherheitserweiterungen hinzu.

sprintf_s entspricht sprintf, fügt aber die Laufzeiteinschränkung hinzu, die verhindert, dass s und format 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, ist s kein Null-Zeiger, und n ist größer als Null und kleiner als RSIZE_MAX, 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 Codierungsfehler 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