Freigeben über


_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

Liest formatierte Daten einer angegebenen Länge von einer Zeichenfolge. Diese Versionen von _snscanf, _snscanf_l, _snwscanf, _snwscanf_l enthalten Sicherheitserweiterungen wie unter Sicherheitsfunktionen in der CRT beschrieben.

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 Eingabezeichenfolge.

  • length
    Zahl in input zu überprüfen, Zeichen.

  • format
    Mindestens ein Formatbezeichner.

  • ... (optional)
    Variablen, die verwendet werden, um Werte zu speichern, extrahierten der Eingabezeichenfolge von die Formatbezeichner in format.

  • locale
    Das zu verwendende Gebietsschema.

Rückgabewert

Beide Funktionen gibt die Anzahl der erfolgreichen konvertierten und zugewiesenen Felder zurück; der Rückgabewert enthält Felder, die nicht gelesen wurden, jedoch nicht zugewiesen. Ein Rückgabewert von 0 gibt an, dass keine Felder zugewiesen wurden. Der Rückgabewert bei einem Fehler oder beim Erreichen des Endes der Zeichenfolge vor der ersten Konvertierung lautet EOF. Weitere Informationen finden Sie unter sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Wenn input oder format ein NULL-Zeiger ist, wird, wie in Parametervalidierung beschrieben, der Handler für ungültige Parameter aufgerufen. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EOF zurück und stellen errno auf EINVAL ein.

Weitere Informationen über diese und andere Fehlercodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Hinweise

Diese Funktion entspricht sscanf_s, außer dass sie bietet die Möglichkeit, einer festen Anzahl von Zeichen an, aus der Eingabezeichenfolge zu überprüfen. Weitere Informationen finden Sie unter sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Der Puffergrößenparameter ist den Typfeldzeichen c, C, s, S und [ erfordert. Weitere Informationen finden Sie unter scanf-Typenfeldzeichen.

Hinweis

Der Größenparameter ist vom Typ unsigned und nicht vom Typ size_t.

Die Versionen dieser Funktionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch den ihnen übergebenen Gebietsschemaparameter anstelle des aktuellen Threadgebietsschemas.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_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 zur Kompatibilität finden Sie unter 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

scanf-Breitenangabe