Bagikan melalui


fscanf, , _fscanf_lfwscanf,_fwscanf_l

Membaca data yang diformat dari aliran. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat fscanf_s, _fscanf_s_l, fwscanf_s, . _fwscanf_s_l

Sintaks

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 ]...
);

Parameter

stream
Penunjuk ke FILE struktur.

format
String kontrol format.

argument
Argumen opsional.

locale
Lokal yang akan digunakan.

Nilai hasil

Masing-masing fungsi ini mengembalikan jumlah bidang yang berhasil dikonversi dan ditetapkan; nilai pengembalian tidak menyertakan bidang yang dibaca tetapi tidak ditetapkan. Nilai pengembalian 0 menunjukkan bahwa tidak ada bidang yang ditetapkan. Jika terjadi kesalahan, atau jika akhir aliran file tercapai sebelum konversi pertama, nilai yang dikembalikan adalah EOF untuk fscanf dan fwscanf.

Fungsi-fungsi ini memvalidasi parameternya. Jika stream atau format adalah NULL penunjuk, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini kembali EOF dan diatur errno ke EINVAL.

Keterangan

Fungsi membaca fscanf data dari posisi stream saat ini ke lokasi yang diberikan oleh argument (jika ada). Masing-masing argument harus menjadi penunjuk ke variabel jenis yang sesuai dengan penentu jenis di format. format mengontrol interpretasi bidang input dan memiliki bentuk dan fungsi yang sama dengan format argumen untuk scanf; lihat scanf untuk deskripsi format.

fwscanf adalah versi fscanfkarakter lebar ; argumen format ke fwscanf adalah string karakter lebar. Fungsi-fungsi ini bersifat identik jika aliran dibuka dalam mode ANSI. fscanf saat ini tidak mendukung input dari aliran UNICODE.

Versi fungsi-fungsi ini dengan _l akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal utas saat ini.

Pemetaan rutin teks generik

TCHAR.H Rutin _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_ftscanf fscanf fscanf fwscanf
_ftscanf_l _fscanf_l _fscanf_l _fwscanf_l

Untuk informasi selengkapnya, lihat Memformat bidang spesifikasi: scanf dan wscanf fungsi.

Persyaratan

Fungsi Header yang diperlukan
fscanf, _fscanf_l <stdio.h>
fwscanf, _fwscanf_l <stdio.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// 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

Lihat juga

Streaming I/O
_cscanf, , _cscanf_l_cwscanf,_cwscanf_l
fprintf, , _fprintf_lfwprintf,_fwprintf_l
scanf, , _scanf_lwscanf,_wscanf_l
sscanf, , _sscanf_lswscanf,_swscanf_l
fscanf_s, , _fscanf_s_lfwscanf_s,_fwscanf_s_l