_vprintf_p
, _vprintf_p_l
, _vwprintf_p
, _vwprintf_p_l
Menulis output yang diformat dengan menggunakan penunjuk ke daftar argumen, dan memungkinkan spesifikasi urutan penggunaan argumen.
Sintaks
int _vprintf_p(
const char *format,
va_list argptr
);
int _vprintf_p_l(
const char *format,
_locale_t locale,
va_list argptr
);
int _vwprintf_p(
const wchar_t *format,
va_list argptr
);
int _vwprintf_p_l(
const wchar_t *format,
_locale_t locale,
va_list argptr
);
Parameter
format
Spesifikasi format.
argptr
Penunjuk ke daftar argumen.
locale
Lokal yang akan digunakan.
Untuk informasi selengkapnya, lihat Sintaks spesifikasi format.
Nilai hasil
_vprintf_p
dan _vwprintf_p
mengembalikan jumlah karakter yang ditulis, tidak termasuk karakter null yang mengakhiri, atau nilai negatif jika terjadi kesalahan output.
Keterangan
Masing-masing fungsi ini mengambil penunjuk ke daftar argumen, lalu memformat dan menulis data yang diberikan ke stdout
. Fungsi-fungsi ini berbeda dari vprintf_s
dan vwprintf_s
hanya karena fungsi tersebut mendukung kemampuan untuk menentukan urutan penggunaan argumen. Untuk informasi selengkapnya, lihat Parameter Posisi printf_p.
_vwprintf_p
adalah versi _vprintf_p
karakter lebar ; dua fungsi bersifat identik jika aliran dibuka dalam mode ANSI. _vprintf_p
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. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.
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'.
Jika format
adalah penunjuk null, atau jika string format berisi karakter pemformatan yang tidak valid, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan -1 dan diatur errno
ke EINVAL
.
Pemetaan rutin teks generik
TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_vtprintf_p |
_vprintf_p |
_vprintf_p |
_vwprintf_p |
_vtprintf_p_l |
_vprintf_p_l |
_vprintf_p_l |
_vwprintf_p_l |
Persyaratan
Rutin | Header yang diperlukan | Header opsional |
---|---|---|
_vprintf_p , _vprintf_p_l |
<stdio.h> dan <stdarg.h> | <varargs.h>* |
_vwprintf_p , _vwprintf_p_l |
<stdio.h> atau <wchar.h>, dan <stdarg.h> | <varargs.h>* |
* Diperlukan untuk kompatibilitas UNIX V.
Konsol tidak didukung di aplikasi Platform Windows Universal (UWP). Handel aliran standar yang terkait dengan konsol, , stdin
, stdout
dan stderr
, harus dialihkan sebelum fungsi run-time C dapat menggunakannya di aplikasi UWP. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Baca juga
Streaming I/O
vprintf
Fungsi
_fprintf_p
, _fprintf_p_l
, _fwprintf_p
, _fwprintf_p_l
_printf_p
, _printf_p_l
, _wprintf_p
, _wprintf_p_l
_sprintf_p
, _sprintf_p_l
, _swprintf_p
, _swprintf_p_l
vsprintf_s
, _vsprintf_s_l
, vswprintf_s
, _vswprintf_s_l
va_arg
, va_copy
, va_end
, va_start
_vfprintf_p
, _vfprintf_p_l
, _vfwprintf_p
, _vfwprintf_p_l
_printf_p
, _printf_p_l
, _wprintf_p
, _wprintf_p_l
Parameter Posisi printf_p
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk