_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.