Aracılığıyla paylaş


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ı veri

  • format
    Denetim biçim dizesi.Daha fazla bilgi için bkz: Biçimi belirtimleri.

  • argument
    İsteğe bağlı bağımsız değişkenler

  • locale
    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.

Güvenlik NotuGüvenlik Notu

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

G/ç

fscanf, _fscanf_l, fwscanf, _fwscanf_l

scanf, _scanf_l, wscanf, _wscanf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

_snprintf, _snprintf_l, _snwprintf, _snwprintf_l