fscanf, _fscanf_l, fwscanf, _fwscanf_l

Bir akıştan biçimlendirilmiş verileri okuma. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. fscanf_s, _fscanf_s_l, fwscanf_s. _fwscanf_s_l

Sözdizimi

int fscanf(
   FILE *stream,
   const char *format [,
   argument ]...
);
int _fscanf_l(
   FILE *stream,
   const char *format,
   _locale_t locale [,
   argument ]...
);
int fwscanf(
   FILE *stream,
   const wchar_t *format [,
   argument ]...
);
int _fwscanf_l(
   FILE *stream,
   const wchar_t *format,
   _locale_t locale [,
   argument ]...
);

Parametreler

stream
Yapı işaretçisi FILE .

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 alan sayısını döndürür; dönüş değeri okunmuş ancak atanmamış alanları içermez. 0 dönüş değeri, hiçbir alanın atanmadığını gösterir. Bir hata oluşursa veya ilk dönüştürmeden önce dosya akışının sonuna ulaşılırsa, dönüş değeri ve fwscanfiçin fscanf olurEOF.

Bu işlevler parametrelerini doğrular. veya format bir işaretçiysestream, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi NULL çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler döndürülerek EOF olarak EINVALayarlanırerrno.

Açıklamalar

işlevi geçerli fscanf konumundaki stream verileri tarafından argument verilen konumlara (varsa) okur. Her argument biri, içindeki bir tür tanımlayıcısına formatkarşılık gelen bir tür değişkeninin işaretçisi olmalıdır. formatgiriş alanlarının yorumlanmasını denetler ve için bağımsız değişkeniyle scanfaynı form ve işleve format sahiptir; açıklamasını formatgörmek için bkzscanf. .

fwscanf , öğesinin fscanfgeniş karakterli bir sürümüdür; için biçim bağımsız değişkeni fwscanf geniş karakterli bir dizedir. Akış ANSI modunda açıldığında bu işlevler aynı şekilde davranır. fscanf şu anda bir UNICODE akışından girişi desteklemez.

Bu işlevlerin sonekli _l sürümleri aynıdır, ancak geçerli iş parçacığı yerel ayarı yerine geçirilen yerel ayar parametresini kullanırlar.

Genel metin yordamı eşlemeleri

TCHAR.H olağan _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_ftscanf fscanf fscanf fwscanf
_ftscanf_l _fscanf_l _fscanf_l _fwscanf_l

Daha fazla bilgi için bkz . Belirtim alanlarını biçimlendirme: scanf ve wscanf işlevleri.

Gereksinimler

İşlev Gerekli başlık
fscanf, _fscanf_l <stdio.h>
fwscanf, _fwscanf_l <stdio.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_fscanf.c
// compile with: /W3
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.

#include <stdio.h>

FILE *stream;

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

   if( fopen_s( &stream, "fscanf.out", "w+" ) != 0 )
      printf( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf( stream, "%s %ld %f%c", "a-string",
               65000, 3.14159, 'x' );
      // Security caution!
      // Beware loading data from a file without confirming its size,
      // as it may lead to a buffer overrun situation.

      // Set pointer to beginning of file:
      fseek( stream, 0L, SEEK_SET );

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

      fscanf( stream, "%f", &fp ); // C4996
      fscanf( stream, "%c", &c );  // C4996
      // Note: fscanf is deprecated; consider using fscanf_s instead

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

      fclose( stream );
   }
}
a-string
65000
3.141590
x

Ayrıca bkz.

Akış G/Ç
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l