Aracılığıyla paylaş


scanf, _scanf_l, wscanf, _wscanf_l

Okuma standart giriş akış verileri biçimlendirilmiş. Bu işlev daha güvenli sürümlerini kullanılabilir; see scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l.

int scanf(
   const char *format [,
   argument]... 
);
int _scanf_l(
   const char *format,
   locale_t locale [,
   argument]... 
);
int wscanf(
   const wchar_t *format [,
   argument]... 
);
int _wscanf_l(
   const wchar_t *format,
   locale_t locale [,
   argument]... 
);

Parametreler

  • format
    Biçim denetimi dizesi.

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

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

Başarılı bir şekilde dönüştürülür ve atanan alanların sayısını verir; dönüş değerini okuyabilir ancak atanmamış alanları içermez. 0 Döndürülen değeriyle hiçbir alan atanmış olan gösterir.

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 verilip verilmediğini, bu işlevler dönmek EOF ve errno için EINVAL.

Bunlar ve diğer hata kodları hakkında daha fazla bilgi için bkz: _doserrno, hatano, _sys_errlist ve _sys_nerr.

Notlar

scanf İşlevi standart giriş akışından verileri okur stdin ve verileri tarafından verilen konumuna yazar argument. Her argument türü belirticisi karşılık gelen bir türünde bir değişken için bir işaretçi olmalıdır format. Kopyalama, üst üste dizeler arasında yer alıyorsa, davranışı tanımsızdır.

Güvenlik NotuGüvenlik Notu

Ne zaman, bir dize okumak scanf, her zaman için bir genişlik belirleyin %s biçimini (örneğin, "%32s" yerine "%s"); Aksi takdirde, uygun olmayan şekilde biçimlendirilmiş giriş kolayca arabellek taşmasına neden olabilir.Alternatif olarak kullanmayı scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l veya fgets.

wscanfgeniş karakter sürümü scanf; format bağımsız değişkeni wscanf bir geniş karakter dizesidir. wscanfve scanf akış ANSI modunda açılırsa aynı şekilde davranır. scanfşu anda UNICODE akış girişten desteklemiyor.

Bu işlevleri sürümlerini _l sonek dışında geçerli iş parçacığı yerel geçirilen yerel ayar parametresi kullandıkları aynı.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tscanf

scanf

scanf

wscanf

_tscanf_l

_scanf_l

_scanf_l

_wscanf_l

Daha fazla bilgi için bkz: biçim belirtimi alanları — scanf işlevlerini ve wscanf işlevlerini.

Gereksinimler

Yordamı

Gerekli başlık

scanf, _scanf_l

<stdio.h>

wscanf, _wscanf_l

<stdio.h> veya <wchar.h>

Konsol desteklenen değil Windows Mağazası apps. Konsolu ile ilgili standart akış tanıtıcıları stdin, stdout, ve stderr, c çalışma zamanı işlevlerini de kullanılmadan önce yönlendirilecek Windows Mağazası apps. Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

// crt_scanf.c
// compile with: /W3
 /* This program uses the scanf and wscanf functions
  * to read formatted input.
  */

#include <stdio.h>

int main( void )
{
   int   i, result;
   float fp;
   char  c, s[81];
   wchar_t wc, ws[81];
   result = scanf( "%d %f %c %C %80s %80S", &i, &fp, &c, &wc, s, ws ); // C4996
   // Note: scanf and wscanf are deprecated; consider using scanf_s and wscanf_s
   printf( "The number of fields input is %d\n", result );
   printf( "The contents are: %d %f %c %C %s %S\n", i, fp, c, wc, s, ws);
   result = wscanf( L"%d %f %hc %lc %80S %80ls", &i, &fp, &c, &wc, s, ws ); // C4996
   wprintf( L"The number of fields input is %d\n", result );
   wprintf( L"The contents are: %d %f %C %c %hs %s\n", i, fp, c, wc, s, ws);
}
  

.NET Framework Eşdeğeri

Ayrıca bkz.

Başvuru

Kayan nokta türü desteği

G/ç

Yerel ayar

fscanf, _fscanf_l, fwscanf, _fwscanf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

sscanf, _sscanf_l, swscanf, _swscanf_l