Fungsi vprintf
vprintf
Masing-masing fungsi mengambil penunjuk ke daftar argumen, lalu memformat dan menulis data yang diberikan ke tujuan tertentu. Fungsi ini berbeda dalam beberapa cara: dalam validasi parameter, apakah fungsi mengambil string karakter byte tunggal atau lebar, tujuan output, dan dukungan untuk menentukan parameter pesanan digunakan dalam string format.
_vcprintf
, _vcwprintf
vfprintf
, vfwprintf
_vfprintf_p
, , _vfprintf_p_l
_vfwprintf_p
,_vfwprintf_p_l
vfprintf_s
, , _vfprintf_s_l
vfwprintf_s
,_vfwprintf_s_l
vprintf
, vwprintf
_vprintf_p
, , _vprintf_p_l
_vwprintf_p
,_vwprintf_p_l
vprintf_s
, , _vprintf_s_l
vwprintf_s
,_vwprintf_s_l
_vscprintf
, , _vscprintf_l
_vscwprintf
,_vscwprintf_l
_vsnprintf
, , _vsnwprintf
vsprintf
vswprintf
_vsprintf_p
, , _vsprintf_p_l
_vswprintf_p
,_vswprintf_p_l
vsprintf_s
, , _vsprintf_s_l
vswprintf_s
,_vswprintf_s_l
Keterangan
Fungsi ini vprintf
mirip dengan fungsi mitranya seperti yang tercantum dalam tabel berikut. Namun, setiap vprintf
fungsi menerima penunjuk ke daftar argumen, sedangkan setiap fungsi mitra menerima daftar argumen.
Fungsi ini memformat data untuk output ke tujuan sebagai berikut.
Fungsi | Fungsi mitra | Tujuan output | Validasi Parameter | Dukungan Parameter Posisi |
---|---|---|---|---|
_vcprintf |
_cprintf |
konsol | Periksa null. | no |
_vcwprintf |
_cwprintf |
konsol | Periksa null. | no |
vfprintf |
fprintf |
stream |
Periksa null. | no |
vfprintf_p |
fprintf_p |
stream |
Periksa format null dan valid. | yes |
vfprintf_s |
fprintf_s |
stream |
Periksa format null dan valid. | no |
vfwprintf |
fwprintf |
stream |
Periksa null. | no |
vfwprintf_p |
fwprintf_p |
stream |
Periksa format null dan valid. | yes |
vfwprintf_s |
fwprintf_s |
stream |
Periksa format null dan valid. | no |
vprintf |
printf |
stdout |
Periksa null. | no |
vprintf_p |
printf_p |
stdout |
Periksa format null dan valid. | yes |
vprintf_s |
printf_s |
stdout |
Periksa format null dan valid. | no |
vwprintf |
wprintf |
stdout |
Periksa null. | no |
vwprintf_p |
wprintf_p |
stdout |
Periksa format null dan valid. | yes |
vwprintf_s |
wprintf_s |
stdout |
Periksa format null dan valid. | no |
vsprintf |
sprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
vsprintf_p |
sprintf_p |
memori menunjuk ke oleh buffer |
Periksa format null dan valid. | yes |
vsprintf_s |
sprintf_s |
memori menunjuk ke oleh buffer |
Periksa format null dan valid. | no |
vswprintf |
swprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
vswprintf_p |
swprintf_p |
memori menunjuk ke oleh buffer |
Periksa format null dan valid. | yes |
vswprintf_s |
swprintf_s |
memori menunjuk ke oleh buffer |
Periksa format null dan valid. | no |
_vscprintf |
_vscprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
_vscwprintf |
_vscwprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
_vsnprintf |
_snprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
_vsnwprintf |
_snwprintf |
memori menunjuk ke oleh buffer |
Periksa null. | no |
Argumen argptr
memiliki jenis va_list
, yang didefinisikan dalam VARARGS. H dan STDARG.H. Variabel argptr
harus diinisialisasi oleh va_start, dan dapat diinisialisasi ulang oleh panggilan berikutnya va_arg
; argptr
kemudian menunjuk ke awal daftar argumen yang dikonversi dan ditransmisikan untuk output sesuai dengan spesifikasi yang sesuai dalam format
argumen. format
memiliki bentuk dan fungsi yang sama dengan format
argumen untuk printf
. Tidak satu pun dari fungsi-fungsi ini memanggil va_end
. Untuk deskripsi yang lebih lengkap tentang setiap vprintf
fungsi, lihat deskripsi fungsi mitranya seperti yang tercantum dalam tabel sebelumnya.
_vsnprintf
berbeda dari vsprintf
dalam bahwa ia menulis tidak lebih dari count
byte ke buffer
.
Versi fungsi-fungsi ini dengan infiks w dalam nama adalah versi karakter lebar dari fungsi yang sesuai tanpa infiks w ; di masing-masing fungsi karakter lebar ini, buffer
dan format
merupakan string karakter lebar. Jika tidak, setiap fungsi karakter lebar berwujud identik dengan fungsi rekan SBCS-nya.
Versi fungsi-fungsi ini dengan _s
akhiran dan _p
adalah versi yang lebih aman. Versi ini memvalidasi string format. Mereka akan menghasilkan pengecualian jika string format tidak terbentuk dengan baik (misalnya, jika karakter pemformatan tidak valid digunakan).
Versi fungsi-fungsi ini dengan _p
akhiran memungkinkan Anda menentukan urutan di mana argumen yang disediakan diganti dalam string format. Untuk informasi selengkapnya, lihat Parameter Posisi printf_p.
Untuk vsprintf
, vswprintf
, _vsnprintf
dan _vsnwprintf
, jika penyalinan terjadi di antara string yang tumpang tindih, perilaku tidak terdefinisi.
Penting
Pastikan itu format
bukan string yang ditentukan pengguna. Untuk informasi selengkapnya, lihat Menghindari overruns buffer. Jika menggunakan versi aman fungsi-fungsi ini (baik _s
akhiran atau _p
, string format yang disediakan pengguna dapat memicu pengecualian parameter yang tidak valid jika string yang disediakan pengguna berisi karakter pemformatan yang tidak valid.
Lihat juga
Streaming I/O
fprintf
, , _fprintf_l
fwprintf
,_fwprintf_l
printf
, , _printf_l
wprintf
,_wprintf_l
sprintf
, , _sprintf_l
swprintf
, , _swprintf_l
,__swprintf_l
va_arg
, , va_copy
va_end
,va_start