sscanf, _sscanf_l, swscanf, _swscanf_l
Okuma bir dize verileri biçimlendirilmiş.Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.
int sscanf(
const char *buffer,
const char *format [,
argument ] ...
);
int _sscanf_l(
const char *buffer,
const char *format,
locale_t locale [,
argument ] ...
);
int swscanf(
const wchar_t *buffer,
const wchar_t *format [,
argument ] ...
);
int _swscanf_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çin EINVAL.
Bunlar ve diğer hata kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.
Notlar
sscanf İşlevi verileri okur buffer her tarafından verilen konumuna argument.Her argument türü belirticisi karşılık gelen bir türü olan bir değişkene bir pointer olmalıdır format.format Yorumunu giriş alanları ve aynı bağımsız denetimlerin form ve olarak işlev format bağımsız değişkeni scanf işlevi.Kopyalama üst üste dizeler arasında yer alıyorsa, tanımsız bir davranıştır.
![]() |
---|
Bir dizeyi okurken sscanf, her zaman için bir genişlik belirleyin %s biçimi (örneğin, "%32s" yerine "%s"); Aksi takdirde, hatalı biçimlendirilmiş bir giriş arabellek taşması kolayca neden olabilir. |
swscanfgeniş karakter sürümü sscanf; bağımsız swscanf geniş karakter dizeleridir.sscanfçok baytlı onaltılı karakter işlemez.swscanftam genişlikli onaltılık Unicode veya "uyumluluk bölgesi" karakterleri işlemez.Aksi halde, swscanf ve sscanf 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 |
sscanf |
sscanf |
swscanf |
_stscanf_l |
_sscanf_l |
_sscanf_l |
_swscanf_l |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
sscanf, _sscanf_l |
<stdio.h> |
swscanf, _swscanf_l |
<stdio.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// crt_sscanf.c
// compile with: /W3
// This program uses sscanf to read data items
// from a string named tokenstring, then displays them.
#include <stdio.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:
sscanf( tokenstring, "%80s", s ); // C4996
sscanf( tokenstring, "%c", &c ); // C4996
sscanf( tokenstring, "%d", &i ); // C4996
sscanf( tokenstring, "%f", &fp ); // C4996
// Note: sscanf is deprecated; consider using sscanf_s instead
// Output the data read
printf( "String = %s\n", s );
printf( "Character = %c\n", c );
printf( "Integer: = %d\n", i );
printf( "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