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.
Mencetak data yang diformat ke aliran. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat fprintf_s
, _fprintf_s_l
, fwprintf_s
, . _fwprintf_s_l
Untuk _ftprintf
dan _ftprintf_l
, lihat Pemetaan fungsi generik-teks.
Sintaks
int fprintf(
FILE *stream,
const char *format [,
argument ]...
);
int _fprintf_l(
FILE *stream,
const char *format,
_locale_t locale [,
argument ]...
);
int fwprintf(
FILE *stream,
const wchar_t *format [,
argument ]...
);
int _fwprintf_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
fprintf
mengembalikan jumlah byte yang ditulis. fwprintf
mengembalikan jumlah karakter lebar yang ditulis. Masing-masing fungsi ini mengembalikan nilai negatif sebagai gantinya ketika terjadi kesalahan output. Jika stream
atau format
, NULL
fungsi-fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan -1 dan diatur errno
ke EINVAL
. String format tidak diperiksa untuk karakter pemformatan yang valid seperti saat menggunakan fprintf_s
atau fwprintf_s
.
Untuk informasi selengkapnya tentang kode pengembalian, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
fprintf
memformat dan mencetak serangkaian karakter dan nilai ke output stream
. Setiap fungsi argument
(jika ada) dikonversi dan dihasilkan sesuai dengan spesifikasi format yang sesuai di format
. Untuk fprintf
, format
argumen memiliki sintaks yang sama dengan yang ada di .printf
fwprintf
adalah versi karakter lebar dari fprintf
; dalam fwprintf
, format
adalah string karakter lebar. Fungsi-fungsi ini bersifat identik jika aliran dibuka dalam mode ANSI. fprintf
saat ini tidak mendukung output ke dalam aliran UNICODE.
Versi fungsi-fungsi ini dengan _l
akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal utas saat ini.
Penting
Pastikan itu format
bukan string yang ditentukan pengguna.
Mulai Windows 10 versi 2004 (build 19041), printf
keluarga fungsi mencetak angka titik mengambang yang persis dapat diwakili sesuai dengan aturan IEEE 754 untuk pembulatan. Di versi Windows sebelumnya, angka titik pecahan yang persis dapat diwakili yang berakhiran '5' akan selalu dibulatkan. IEEE 754 menyatakan bahwa mereka harus membulatkan ke digit terdekat bahkan (juga dikenal sebagai "Pembulatan Bankir"). Misalnya, dan printf("%1.0f", 1.5)
printf("%1.0f", 2.5)
harus membulatkan ke 2. Sebelumnya, 1,5 akan membulatkan ke 2 dan 2,5 akan dibulatkan ke 3. Perubahan ini hanya memengaruhi angka yang tepat yang dapat diwakili. Misalnya, 2,35 (yang, ketika diwakili dalam memori, lebih dekat ke 2,3500000000000000008) terus membulatkan ke atas hingga 2,4. Pembulatan yang dilakukan oleh fungsi-fungsi ini sekarang juga menghormati mode pembulatan titik mengambang yang ditetapkan oleh fesetround
. Sebelumnya, pembulatan selalu memilih FE_TONEAREST
perilaku. Perubahan ini hanya memengaruhi program yang dibuat menggunakan Visual Studio 2019 versi 16.2 dan yang lebih baru. Untuk menggunakan perilaku pembulatan titik mengambang warisan, tautkan dengan 'legacy_stdio_float_rounding.obj'.
Pemetaan fungsi teks generik
Fungsi dalam tchar.h
kolom memetakan ke fungsi di kolom lain tergantung pada kumpulan karakter yang ditentukan pada waktu kompilasi.
tchar.h fungsi |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_ftprintf |
fprintf |
fprintf |
fwprintf |
_ftprintf_l |
_fprintf_l |
_fprintf_l |
_fwprintf_l |
Untuk informasi selengkapnya, lihat Sintaks spesifikasi format.
Persyaratan
Fungsi | Header yang diperlukan |
---|---|
fprintf , _fprintf_l |
<stdio.h> |
fwprintf , _fwprintf_l |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_fprintf.c
/* This program uses fprintf to format various
* data and print it to the file named FPRINTF.OUT. It
* then displays FPRINTF.OUT on the screen using the system
* function to invoke the operating-system TYPE command.
*/
#include <stdio.h>
#include <process.h>
FILE *stream;
int main( void )
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
fopen_s( &stream, "fprintf.out", "w" );
fprintf( stream, "%s%c", s, c );
fprintf( stream, "%d\n", i );
fprintf( stream, "%f\n", fp );
fclose( stream );
system( "type fprintf.out" );
}
this is a string
10
1.500000
Lihat juga
Streaming I/O
_cprintf
, , _cprintf_l
_cwprintf
,_cwprintf_l
fscanf
, , _fscanf_l
fwscanf
,_fwscanf_l
sprintf
, , _sprintf_l
swprintf
, , _swprintf_l
,_swprintf_l
Sintaks spesifikasi format: printf
dan wprintf
fungsi