Aracılığıyla paylaş


_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

Belirtilen uzunluktaki biçimlendirilmiş verileri bir dizeden okur. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _snscanf_s, _snscanf_s_l, _snwscanf_s. _snwscanf_s_l

Sözdizimi

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

Parametreler

input
İncelenmesi gereken giriş dizesi.

length
içinde inputincelenen karakter sayısı.

format
Bir veya daha fazla biçim tanımlayıcısı.

...
içindeki biçim tanımlayıcıları formattarafından giriş dizesinden ayıklanan değerleri depolamak için kullanılacak isteğe bağlı değişkenler.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Bu işlevlerin her ikisi de başarıyla dönüştürülen ve atanan alan sayısını döndürür; dönüş değeri okunmuş ancak atanmamış alanları içermez. 0 dönüş değeri, hiçbir alanın atanmadığını gösterir. Dönüş değeri EOF bir hata içindir veya ilk dönüştürmeden önce dizenin sonuna ulaşılırsa. Daha fazla bilgi için bkz. sscanf.

veya format bir işaretçiyse input veya sıfırdan küçükse veya sıfıra eşitselength, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi NULL çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler döndürülerek EOF olarak EINVALayarlanırerrno.

Bunlar ve diğer hata kodları hakkında bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

Bu işlev, giriş dizesinden inceleneceğiniz sabit sayıda karakter belirtmenize olanak tanıyan dışında gibi sscanfbir işlevdir. Daha fazla bilgi için bkz. sscanf.

Bu işlevlerin sonekli _l sürümleri aynıdır, ancak geçerli iş parçacığı yerel ayarı yerine geçirilen yerel ayar parametresini kullanırlar.

Genel metin yordamı eşlemeleri

Tchar.h yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_sntscanf _snscanf _snscanf _snwscanf
_sntscanf_l _snscanf_l _snscanf_l _snwscanf_l

Gereksinimler

Yordam Gerekli başlık
_snscanf, _snscanf_l <stdio.h>
_snwscanf, _snwscanf_l <stdio.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

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

Ayrıca bkz.

scanf Genişlik Belirtimi