_vscprintf_p, , _vscprintf_p_l_vscwprintf_p,_vscwprintf_p_l

Mengembalikan jumlah karakter dalam string yang diformat menggunakan penunjuk ke daftar argumen, dengan kemampuan untuk menentukan urutan penggunaan argumen.

Sintaks

int _vscprintf_p(
   const char *format,
   va_list argptr
);
int _vscprintf_p_l(
   const char *format,
   _locale_t locale,
   va_list argptr
);
int _vscwprintf_p (
   const wchar_t *format,
   va_list argptr
);
int _vscwprintf_p_l(
   const wchar_t *format,
   _locale_t locale,
   va_list argptr
);

Parameter

format
String kontrol format.

argptr
Penunjuk ke daftar argumen.

locale
Lokal yang akan digunakan.

Untuk informasi selengkapnya, lihat Sintaks spesifikasi format.

Nilai hasil

_vscprintf_p mengembalikan jumlah karakter yang akan dihasilkan jika string yang diacu oleh daftar argumen dicetak atau dikirim ke file atau buffer menggunakan kode pemformatan yang ditentukan. Nilai yang dikembalikan tidak menyertakan karakter null yang dihentikan. _vscwprintf_p melakukan fungsi yang sama untuk karakter lebar.

Keterangan

Fungsi-fungsi ini berbeda dari _vscprintf dan _vscwprintf hanya karena fungsi tersebut mendukung kemampuan untuk menentukan urutan penggunaan argumen. Untuk informasi selengkapnya, lihat printf_p Parameter Posisi.

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

Jika format adalah penunjuk null, 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.

Penting

Pastikan bahwa jika format adalah string yang ditentukan pengguna, string tersebut dihentikan secara null dan memiliki jumlah dan jenis parameter yang benar. 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'.

Pemetaan rutin teks generik

TCHAR. Rutinitas H _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_vsctprintf_p _vscprintf_p _vscprintf_p _vscwprintf_p
_vsctprintf_p_l _vscprintf_p_l _vscprintf_p_l _vscwprintf_p_l

Persyaratan

Rutin Header yang diperlukan
_vscprintf_p, _vscprintf_p_l <stdio.h>
_vscwprintf_p, _vscwprintf_p_l <stdio.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Lihat contoh untuk vsprintf.

Lihat juga

vprintf Fungsi
_scprintf_p, , _scprintf_p_l_scwprintf_p,_scwprintf_p_l
_vscprintf, , _vscprintf_l_vscwprintf,_vscwprintf_l