Udostępnij za pośrednictwem


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

Zobacz też

Informacje

scanf — Specyfikacje szerokości