_snscanf
, , _snscanf_l
_snwscanf
_snwscanf_l
Liest formatierte Daten einer angegebenen Länge aus einer Zeichenfolge. Sicherere Versionen dieser Funktionen sind verfügbar; siehe _snscanf_s
, , _snscanf_s_l
, . _snwscanf_s_l
_snwscanf_s
Syntax
int __cdecl _snscanf(
const char * input,
size_t length,
const char * format,
...
);
int __cdecl _snscanf_l(
const char * input,
size_t length,
const char * format,
_locale_t locale,
...
);
int __cdecl _snwscanf(
const wchar_t * input,
size_t length,
const wchar_t * format,
...
);
int __cdecl _snwscanf_l(
const wchar_t * input,
size_t length,
const wchar_t * format,
_locale_t locale,
...
);
Parameter
input
Zu untersuchende Eingabezeichenfolge
length
Anzahl der zu untersuchenden Zeichen in input
format
Mindestens ein Formatbezeichner
...
Optionale Variablen, die zum Speichern der aus der Eingabezeichenfolge extrahierten Werte durch die Formatbezeichner in format
.
locale
Das zu verwendende Gebietsschema.
Rückgabewert
Beide Funktionen geben die Anzahl der erfolgreich konvertierten und zugewiesenen Felder zurück; Der Rückgabewert enthält keine Felder, die gelesen, aber nicht zugewiesen wurden. 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
.
Wenn input
oder ein NULL
Zeiger ist oder length
format
kleiner oder gleich Null ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EOF
zurück und stellen errno
auf EINVAL
ein.
Informationen zu diesen und anderen Fehlercodes finden Sie unter , , _doserrno
, _sys_errlist
und _sys_nerr
.errno
Hinweise
Diese Funktion ist ähnlich sscanf
, mit der Ausnahme, dass Sie eine feste Anzahl von Zeichen angeben können, die aus der Eingabezeichenfolge untersucht werden sollen. Weitere Informationen finden Sie unter sscanf
.
Die Versionen dieser Funktionen mit dem _l
-Suffix sind beinahe identisch, verwenden jedoch den ihnen übergebenen Gebietsschemaparameter anstelle des aktuellen Threadgebietsschemas.
Mapping generischer Textroutinen
Tchar.h-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_sntscanf |
_snscanf |
_snscanf |
_snwscanf |
_sntscanf_l |
_snscanf_l |
_snscanf_l |
_snwscanf_l |
Anforderungen
Routine | Erforderlicher Header |
---|---|
_snscanf , _snscanf_l |
<stdio.h> |
_snwscanf , _snwscanf_l |
<stdio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_snscanf.c
// compile with: /W3
#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( str1, 6, "%s %f", s1, &fp); // C4996
// Note: _snscanf is deprecated; consider using _snscanf_s instead
printf("_snscanf converted %d fields: ", i);
printf("%s and %f\n", s1, fp);
i = _snwscanf( str2, 6, L"%s %f", s2, &fp); // C4996
// Note: _snwscanf is deprecated; consider using _snwscanf_s instead
wprintf(L"_snwscanf converted %d fields: ", i);
wprintf(L"%s and %f\n", s2, fp);
}
_snscanf converted 2 fields: 15 and 12.000000
_snwscanf converted 2 fields: 15 and 12.000000