Aracılığıyla paylaş


fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

Biçimlendirilmiş verileri bir akıştan okur.Bu fscanf, _fscanf_l, fwscanf, _fwscanf_l sürümlerinde CRT'deki Güvenlik Özellikleri içinde açıklandığı gibi güvenlik geliştirmeleri mevcut olabilir.

int fscanf_s( 
   FILE *stream,
   const char *format [,
   argument ]... 
);
int _fscanf_s_l( 
   FILE *stream,
   const char *format,
   locale_t locale [,
   argument ]... 
);
int fwscanf_s( 
   FILE *stream,
   const wchar_t *format [,
   argument ]... 
);
int _fwscanf_s_l( 
   FILE *stream,
   const wchar_t *format,
   locale_t locale [,
   argument ]... 
);

Parametreler

  • stream
    FILE yapısı işaretçisi.

  • 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

Bu işlevlerin her biri, başarıyla dönüştürülen ve atanan alanların sayısını getirir; dönüş değeri, okunmuş ancak atanmamış alanları içermez.Döndürülen değer 0 ise, hiçbir alan atanmamıştır.Bir hata oluşursa veya dosya akışı sonuna ilk dönüştürmeden önce ulaşılırsa, dönüş değeri fscanf_s ve fwscanf_s için EOF olur.

Bu işlevler, kendi parametrelerini doğrular.stream geçersiz bir dosya işaretçisiyse veya format, null bir işaretçiyse bu işlevler, Parametre Doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır.Yürütmenin devam etmesine izin verilirse, bu işlevler EOF döndürür ve errno öğesini EINVAL olarak ayarlar.

Notlar

fscanf_s İşlevi geçerli konumunu veri okur stream tarafından verilen konumları içine argument (varsa).Her argument bir tür belirleyici içinde karşılık gelen bir türünde bir değişken için bir işaretçi olmalıdır format.formatyorumunu giriş alanları ve aynı denetimleri form ve olarak işlev format bağımsız değişkeni için scanf_s; bkz: Biçim Belirtimi Alanları: scanf ve wscanf İşlevleri açıklaması için format. fwscanf_sbir geniş karakter sürümü fscanf_s; format bağımsız fwscanf_s bir geniş karakter dizesidir.Bu işlevler akış ANSI modunda açıldığında benzer şekilde çalışır.fscanf_sUNICODE akıştan şu anda giriş desteklemiyor.

Daha güvenli işlevler (_s sonekine sahip) ve diğer sürümler arasındaki temel fark, daha güvenli işlevlerinin her c, C, s, S ve [ tür alanının karakterlerindeki boyutun değişkenin hemen ardından gelen bir bağımsız değişken olarak geçirilmesini gerektirmesidir.Daha fazla bilgi için, bkz. scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l ve sacnf Genişlik Belirtimi.

[!NOT]

Boyut parametresi size_t değil unsigned türündedir.

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

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_ftscanf_s

fscanf_s

fscanf_s

fwscanf_s

_ftscanf_s_l

_fscanf_s_l

_fscanf_s_l

_fwscanf_s_l

Gereksinimler

Function

Gerekli başlık

fscanf_s, _fscanf_s_l

<stdio.h>

fwscanf_s, _fwscanf_s_l

<stdio.h> or <wchar.h>

Ek uyumluluk bilgileri için bkz. Uyumluluk.

Örnek

// crt_fscanf_s.c
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.
 
#include <stdio.h>
#include <stdlib.h>

FILE *stream;

int main( void )
{
   long l;
   float fp;
   char s[81];
   char c;

   errno_t err = fopen_s( &stream, "fscanf.out", "w+" );
   if( err )
      printf_s( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf_s( stream, "%s %ld %f%c", "a-string", 
               65000, 3.14159, 'x' );
      // Set pointer to beginning of file:
      fseek( stream, 0L, SEEK_SET );

      // Read data back from file:
      fscanf_s( stream, "%s", s, _countof(s) );
      fscanf_s( stream, "%ld", &l );

      fscanf_s( stream, "%f", &fp );
      fscanf_s( stream, "%c", &c, 1 );

      // Output data read:
      printf( "%s\n", s );
      printf( "%ld\n", l );
      printf( "%f\n", fp );
      printf( "%c\n", c );

      fclose( stream );
   }
}
  

.NET Framework Eşdeğeri

System::IO::StreamReader::ReadLine. Ayrıca bkz: Parse yöntemleri, örneğin System::Double::Parse.

Ayrıca bkz.

Başvuru

Akış G/Ç

_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l

fscanf, _fscanf_l, fwscanf, _fwscanf_l