Aracılığıyla paylaş


_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

Okuma, verilerin belirli bir uzunlukta bir dizeden biçimlendirilmiş.Bunlar sürümleridir _snscanf, _snscanf_l, _snwscanf, _snwscanf_l açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

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

Parametreler

  • input
    İncelemek için Giriş dizesi.

  • length
    İçinde incelemek için karakter sayısı input.

  • format
    Bir veya daha fazla biçim belirteçleri.

  • ... (optional)
    İçinde biçim belirticileri tarafından giriş dizeden ayıkladığınız değerlerini depolamak için kullanılacak değişkenleri format.

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

Bu işlevlerin hem de başarılı bir şekilde dönüştürülür ve atanan alanların sayısını verir; Dönüş değeri okuyabilir ancak atanmamış alanları içermez.Hiçbir alan atanmış olan 0 dönüş değeri gösterir.Dönüş değeri EOF hata veya dizenin sonuna ilk dönüştürmeden önce ulaşılırsa.Daha fazla bilgi için bkz. sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

input Veya format olan bir NULL işaretçisi, geçersiz parametre işleyici çağrıldığında, açıklandığı gibi Parametre doğrulama.Bu işlevler dönüş yürütülmesine devam etmek için izin verilip verilmediğini, EOF ve errno için EINVAL.

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

Notlar

Bu işlev bir duygu olduğunu sscanf_s dışında sabit bir giriş dizeden incelemek için karakter sayısını belirtme olanağı sağlar.Daha fazla bilgi için bkz. sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Alan karakterleri yazın arabellek boyutu parametresi gereklidir c, C, s, S, ve [.Daha fazla bilgi için bkz. scanf alan karakterleri yazın.

[!NOT]

Boyut parametresi türü olan unsignedyerine size_t.

Bu işlevler ile sürümlerini _l soneki yerine geçerli iş parçacığı yerel geçirilen yerel parametresi kullandıkları dışında aynı.

Genel metin yordamı eşlemeleri

Tchar.h yordamına girildi

_UNICODE ve _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_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 bilgileri için bkz: Uyumluluk giriş.

Ö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);
}
  

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

scanf genişlik belirtimi