_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l
Reads formatierte Daten einer angegebenen Länge einer Zeichenfolge.Dies sind Versionen von _snscanf, _snscanf_l, _snwscanf, _snwscanf_l mit beschrieben, wie unter Security Enhancements in Sicherheitsfeatures im CRT.
int __cdecl _snscanf_s(
const char * input,
size_t length,
const char * format,
...
);
int __cdecl _snscanf_s_l(
const char * input,
size_t length,
const char * format,
locale_t locale,
...
);
int __cdecl _snwscanf_s(
const wchar_t * input,
size_t length,
const wchar_t * format,
...
);
int __cdecl _snwscanf_s_l(
const wchar_t * input,
size_t length,
const wchar_t * format,
locale_t locale,
…
);
Parameter
input
So überprüfen Sie Eingabezeichenfolge.length
Zahl in inputzu überprüfende Zeichen.format
Eine oder mehrere Formatbezeichner.... (optional)
Variablen, die verwendet werden, um die Werte zu speichern, von der aus der Eingabezeichenfolge extrahierten Format Specifiers in format.locale
Das zu verwendende Gebietsschema.
Rückgabewert
Beide Funktionen gibt die Anzahl der erfolgreich konvertierten und zugewiesenen Felder zurück. Der Rückgabewert schließt keine Felder, die gelesen wurden, jedoch kein Wert zugewiesen.Ein Rückgabewert von 0 gibt an, dass keine Felder zugewiesen wurden.Der Rückgabewert ist EOF für einen Fehler oder wenn das Ende der Zeichenfolge vor der ersten Konvertierung erreicht ist.Weitere Informationen finden Sie unter sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
Wenn input oder format ein NULL Zeiger ist, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.Wenn die Ausführung fortgesetzt werden kann, darf dieser Funktionen geben EOF festlegen und errno zu EINVAL.
Weitere Informationen über diese und andere Fehlercodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.
Hinweise
Diese Funktion ist vergleichbar, außer dass sie sscanf_s bietet die Möglichkeit, eine festgelegte Anzahl von Zeichen an, die aus der Eingabezeichenfolge zu überprüfen.Weitere Informationen finden Sie unter sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
Der Puffergrößen den Typ ist mit Parametern im Feld Zeichen c, C, s, Sund [erforderlich.Weitere Informationen finden Sie unter scanf Typ-Feld-Zeichen.
![]() |
---|
Der Größenparameter ist vom Typ unsigned, nicht size_t. |
Die Versionen dieser Funktionen mit dem _l Suffix sind identisch, mit der Ausnahme, dass sie verwenden den Gebietsschemaparameter, der anstelle des aktuellen Threads gebietsschemas übergeben wird.
Zuweisung generischer Textroutinen
Tchar.h-Routine |
_UNICODE als auch _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_sntscanf_s |
_snscanf_s |
_snscanf_s |
_snwscanf_s |
_sntscanf_s_l |
_snscanf_s_l |
_snscanf_s_l |
_snwscanf_s_l |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_snscanf_s, _snscanf_s_l |
<stdio.h> |
_snwscanf_s, _snwscanf_s_l |
<stdio.h> oder <wchar.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Beispiel
// crt_snscanf_s.c
// This example scans a string of
// numbers, using both the character
// and wide character secure versions
// of the snscanf function.
#include <stdio.h>
int main( )
{
char str1[] = "15 12 14...";
wchar_t str2[] = L"15 12 14...";
char s1[3];
wchar_t s2[3];
int i;
float fp;
i = _snscanf_s( str1, 6, "%s %f", s1, 3, &fp);
printf_s("_snscanf_s converted %d fields: ", i);
printf_s("%s and %f\n", s1, fp);
i = _snwscanf_s( str2, 6, L"%s %f", s2, 3, &fp);
wprintf_s(L"_snwscanf_s converted %d fields: ", i);
wprintf_s(L"%s and %f\n", s2, fp);
}
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.