_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l
Odczyty sformatowane dane o określonej długości z ciągu znaków.Są to wersje _snscanf, _snscanf_l, _snwscanf, _snwscanf_l z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w 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,
…
);
Parametry
input
Ciąg wejściowy do zbadania.length
Liczba znaków do zbadania w input.format
Jeden lub więcej Specyfikatory format.... (optional)
Zmienne, które będą używane do przechowywania wartości ekstrahowanych z wejściowego ciągu Specyfikatory format w format.locale
Ustawienia regionalne, aby użyć.
Wartość zwracana
Obie te funkcje zwraca liczbę pól pomyślnie przekonwertowane i przypisany; zwracana wartość nie zawiera pól, które były odczytywane, ale nie jest przypisany.Zwracana wartość wynosząca 0 wskazuje, że zostały przypisane żadne pola.Zwracana jest wartość EOF w błąd lub jeśli przed pierwszym konwersji osiągnięty zostanie koniec ciągu.Aby uzyskać więcej informacji, zobacz sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
Jeśli input lub format jest NULL obsługi nieprawidłowy parametr wskaźnika jest wywoływany, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają EOF i errno do EINVAL.
Aby uzyskać informacje na temat tych i innych kodów błędów, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.
Uwagi
Ta funkcja jest jak sscanf_s z wyjątkiem, że zapewnia możliwość określenia stała liczba znaków do zbadania z ciągu wejściowego.Aby uzyskać więcej informacji, zobacz sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
Parametr rozmiar buforu jest wymagane znaki pola typu c, C, s, S, i [.Aby uzyskać więcej informacji, zobacz scanf znaki pola typu.
[!UWAGA]
Parametr rozmiaru jest typu unsigned, nie size_t.
Wersje te funkcje, z _l sufiks są identyczne, z wyjątkiem, że używają oni przekazany zamiast bieżące ustawienia regionalne wątku parametr ustawień regionalnych.
Tekst rodzajowy rutynowych mapowania
Procedura TCHAR.h |
_UNICODE i _MBCS nie zdefiniowane |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_sntscanf_s |
_snscanf_s |
_snscanf_s |
_snwscanf_s |
_sntscanf_s_l |
_snscanf_s_l |
_snscanf_s_l |
_snwscanf_s_l |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_snscanf_s, _snscanf_s_l |
<stdio.h> |
_snwscanf_s, _snwscanf_s_l |
<stdio.h> lub <wchar.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// 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);
}
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.