Aracılığıyla paylaş


_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

Belirtilen uzunluktaki biçimlendirilmiş verileri bir dizeden okur. Bu işlevler, CRT'deki _snscanfGüvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren , _snscanf_l, _snwscanf, _snwscanf_lsürümleridir.

Sözdizimi

int __cdecl _snscanf_s(
   const char * input,
   size_t length,
   const char * format [, argument_list]
);
int __cdecl _snscanf_s_l(
   const char * input,
   size_t length,
   const char * format,
   _locale_t locale [, argument_list]
);
int __cdecl _snwscanf_s(
   const wchar_t * input,
   size_t length,
   const wchar_t * format [, argument_list]
);
int __cdecl _snwscanf_s_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   _locale_t locale [, argument_list]
);

Parametreler

input
İncelenmesi gereken giriş dizesi.

length
içinde inputincelenen karakter sayısı.

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

locale
Kullanılacak yerel ayar.

argument_list
Biçim dizesine göre atanacak isteğe bağlı bağımsız değişkenler.

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_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

veya format bir işaretçiyseinput, 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 sscanf_sbir işlevdir. Daha fazla bilgi için bkz. sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Arabellek boyutu parametresi c, C, s, S ve [. tür alanı karakterleriyle gereklidir. Daha fazla bilgi için bkz . scanf Türü Alan Karakterleri.

Not

Boyut parametresi türündedir unsigned, türünde değildir size_t.

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_s _snscanf_s _snscanf_s _snwscanf_s
_sntscanf_s_l _snscanf_s_l _snscanf_s_l _snwscanf_s_l

Gereksinimler

Yordam Gerekli başlık
_snscanf_s, _snscanf_s_l <stdio.h>
_snwscanf_s, _snwscanf_s_l <stdio.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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);
}
_snscanf_s converted 2 fields: 15 and 12.000000
_snwscanf_s converted 2 fields: 15 and 12.000000

Ayrıca bkz.

scanf Genişlik Belirtimi