_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 input
incelenen karakter sayısı.
format
Bir veya daha fazla biçim tanımlayıcısı.
...
içindeki biçim tanımlayıcıları format
tarafı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 EINVAL
ayarlanırerrno
.
Bunlar ve diğer hata kodları hakkında bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
.
Açıklamalar
Bu işlev, giriş dizesinden inceleneceğiniz sabit sayıda karakter belirtmenize olanak tanıyan dışında gibi sscanf
bir 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