Sdílet prostřednictvím


_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

Čte formátovaná data zadané délky z řetězce. K dispozici jsou bezpečnější verze těchto funkcí; viz _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l.

Syntaxe

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
Vstupní řetězec, který chcete prozkoumat.

length
Počet znaků, které se mají prozkoumat v inputsouboru .

format
Jeden nebo více specifikátorů formátu.

...
Volitelné proměnné, které budou použity k uložení hodnot extrahovaných ze vstupního řetězce specifikátory formátu v format.

locale
Národní prostředí, které se má použít

Vrácená hodnota

Obě tyto funkce vrátí počet polí úspěšně převedených a přiřazených; návratová hodnota neobsahuje pole, která byla přečtená, ale nepřiřazená. Vrácená hodnota 0 označuje, že nebyla přiřazena žádná pole. Vrácená hodnota je EOF pro chybu nebo pokud je dosaženo konce řetězce před prvním převodem. Další informace najdete na webu sscanf.

Pokud input je ukazatel nebo format je NULLlength menší nebo roven nule, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce se vrátí EOF a nastaví errno na EINVAL.

Informace o těchto a dalších kódech chyb naleznete v tématu , , , a_sys_nerr . _sys_errlist_doserrnoerrno

Poznámky

Tato funkce je podobná sscanfs tím rozdílem, že umožňuje zadat pevný počet znaků, které se mají zkoumat ze vstupního řetězce. Další informace najdete na webu sscanf.

Verze těchto funkcí s příponou _l jsou shodné s tím rozdílem, že používají parametr národního prostředí předaný místo aktuálního národního prostředí vlákna.

Mapování rutin obecného textu

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_sntscanf _snscanf _snscanf _snwscanf
_sntscanf_l _snscanf_l _snscanf_l _snwscanf_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_snscanf, _snscanf_l <stdio.h>
_snwscanf, _snwscanf_l <stdio.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Viz také

scanf – specifikace šířky