Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membaca data yang diformat dari aliran. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat vfscanf_s, vfwscanf_s.
Sintaks
int vfscanf(
FILE *stream,
const char *format,
va_list argptr
);
int vfwscanf(
FILE *stream,
const wchar_t *format,
va_list argptr
);
Parameter
stream
Penunjuk ke FILE struktur.
format
String kontrol format.
arglist
Daftar argumen variabel.
Nilai hasil
Masing-masing fungsi ini mengembalikan jumlah bidang yang berhasil dikonversi dan ditetapkan. Nilai yang dikembalikan 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 vfscanf dan vfwscanf.
Fungsi-fungsi ini memvalidasi parameternya. Jika stream atau format adalah penunjuk null, 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 vfscanf data dari posisi stream saat ini ke lokasi yang diberikan oleh arglist daftar argumen. Setiap argumen dalam daftar harus berupa 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.
vfwscanf adalah versi vfscanfkarakter lebar ; argumen format ke vfwscanf adalah string karakter lebar. Fungsi-fungsi ini bersifat identik jika aliran dibuka dalam mode ANSI. vfscanf tidak mendukung input dari aliran UNICODE.
Pemetaan rutin teks generik
| TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
|---|---|---|---|
_vftscanf |
vfscanf |
vfscanf |
vfwscanf |
Untuk informasi selengkapnya, lihat Memformat bidang spesifikasi: scanf dan wscanf fungsi.
Persyaratan
| Fungsi | Header yang diperlukan |
|---|---|
vfscanf |
<stdio.h> |
vfwscanf |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_vfscanf.c
// compile with: /W3
// This program writes formatted
// data to a file. It then uses vfscanf to
// read the various data back from the file.
#include <stdio.h>
#include <stdarg.h>
FILE *stream;
int call_vfscanf(FILE * istream, char * format, ...)
{
int result;
va_list arglist;
va_start(arglist, format);
result = vfscanf(istream, format, arglist);
va_end(arglist);
return result;
}
int main(void)
{
long l;
float fp;
char s[81];
char c;
if (fopen_s(&stream, "vfscanf.out", "w+") != 0)
{
printf("The file vfscanf.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:
call_vfscanf(stream, "%s %ld %f%c", s, &l, &fp, &c);
// 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
vfscanf_s, vfwscanf_s