sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l
Okuma bir dize verileri biçimlendirilmiş.Bunlar sürümleridir sscanf, _sscanf_l, swscanf, _swscanf_l açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.
int sscanf_s(
const char *buffer,
const char *format [,
argument ] ...
);
int _sscanf_s_l(
const char *buffer,
const char *format,
locale_t locale [,
argument ] ...
);
int swscanf_s(
const wchar_t *buffer,
const wchar_t *format [,
argument ] ...
);
int _swscanf_s_l(
const wchar_t *buffer,
const wchar_t *format,
locale_t locale [,
argument ] ...
);
Parametreler
buffer
Saklı veriformat
Denetim biçim dizesi.Daha fazla bilgi için bkz: Biçimi belirtimleri.argument
İsteğe bağlı bağımsız değişkenlerlocale
Kullanılacak yerel ayarı
Dönüş Değeri
Bu işlevlerden her biri başarıyla 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.
buffer Veya format olan bir NULL işaretçisi, geçersiz parametre işleyici çağrıldığında, açıklandığı gibi Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler -1 geri dönün ve errno içinEINVAL
Bunlar ve diğer hata kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.
Notlar
sscanf_s İşlevi verileri okur buffer her tarafından verilen konumuna argument.Biçim dizesi bağımsız değişkenleri için işaretçiler türü belirticisi karşılık gelen bir tür belirtmek format.Daha az güvenli bir sürümünü aksine sscanf, arabellek boyutu parametresi türü alanı karakterleri kullanılırken gereklidir c, C, s, S ve [.Karakter arabelleği boyutu gerektiriyorsa her arabellek sonra ek bir parametre olarak girilmesi gerekir.Daha fazla bilgi için, bkz. scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l ve scanf alan karakterleri yazın.
[!NOT]
Boyut parametresi türü olan unsignedyerine size_t.
format Yorumunu giriş alanları ve aynı bağımsız denetimlerin form ve olarak işlev format bağımsız değişkeni scanf_s işlevi.Kopyalama üst üste dizeler arasında yer alıyorsa, tanımsız bir davranıştır.
swscanf_sgeniş karakter sürümü sscanf_s; bağımsız swscanf_s geniş karakter dizeleridir.sscanf_sçok baytlı onaltılı karakter işlemez.swscanf_stam genişlikli Unicode onaltılık veya "uyumluluk bölgesi" karakterleri işlemez.Aksi halde, swscanf_s ve sscanf_s aynı şekilde davranır.
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 & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_stscanf_s |
sscanf_s |
sscanf_s |
swscanf_s |
_stscanf_s_l |
_sscanf_s_l |
_sscanf_s_l |
_swscanf_s_l |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
sscanf_s, _sscanf_s_l |
<stdio.h> |
swscanf_s, _swscanf_s_l |
<stdio.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_sscanf_s.c
// This program uses sscanf_s to read data items
// from a string named tokenstring, then displays them.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char tokenstring[] = "15 12 14...";
char s[81];
char c;
int i;
float fp;
// Input various data from tokenstring:
// max 80 character string plus NULL terminator
sscanf_s( tokenstring, "%s", s, _countof(s) );
sscanf_s( tokenstring, "%c", &c, sizeof(char) );
sscanf_s( tokenstring, "%d", &i );
sscanf_s( tokenstring, "%f", &fp );
// Output the data read
printf_s( "String = %s\n", s );
printf_s( "Character = %c\n", c );
printf_s( "Integer: = %d\n", i );
printf_s( "Real: = %f\n", fp );
}
.NET Framework Eşdeğeri
Bkz: Parse yöntemleri gibi System::Double::Parse.
Ayrıca bkz.
Başvuru
fscanf, _fscanf_l, fwscanf, _fwscanf_l
scanf, _scanf_l, wscanf, _wscanf_l