Udostępnij za pośrednictwem


_snscanf, , _snscanf_l, , _snwscanf_snwscanf_l

Odczytuje sformatowane dane o określonej długości z ciągu. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _snscanf_s, , _snwscanf_s_snscanf_s_l, , _snwscanf_s_l.

Składnia

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,
   ...
);

Parametry

input
Ciąg wejściowy do zbadania.

length
Liczba znaków do zbadania w pliku input.

format
Co najmniej jeden specyfikator formatu.

...
Opcjonalne zmienne, które będą używane do przechowywania wartości wyodrębnionych z ciągu wejściowego przez specyfikatory formatu w pliku format.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Obie te funkcje zwracają liczbę pól pomyślnie przekonwertowanych i przypisanych; wartość zwracana nie zawiera pól, które zostały odczytane, ale nie zostały przypisane. Wartość zwracana 0 wskazuje, że żadne pola nie zostały przypisane. Wartość zwracana jest EOF dla błędu lub jeśli koniec ciągu zostanie osiągnięty przed pierwszą konwersją. Aby uzyskać więcej informacji, zobacz sscanf.

Jeśli input wskaźnik lub format jest wskaźnikiem NULL lub length jest mniejszy lub równy zero, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EOF i ustawiają wartość errno EINVAL.

Aby uzyskać informacje o tych i innych kodach błędów, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

Ta funkcja jest podobna do sscanf, z tą różnicą, że umożliwia określenie stałej liczby znaków do zbadania z ciągu wejściowego. Aby uzyskać więcej informacji, zobacz sscanf.

Wersje tych funkcji z sufiksem _l są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast bieżących ustawień regionalnych wątku.

Mapowania procedur tekstu ogólnego

Procedura tchar.h _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_sntscanf _snscanf _snscanf _snwscanf
_sntscanf_l _snscanf_l _snscanf_l _snwscanf_l

Wymagania

Procedura Wymagany nagłówek
_snscanf, _snscanf_l <stdio.h>
_snwscanf, _snwscanf_l <stdio.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// 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

Zobacz też

scanf, specyfikacje szerokości