_scprintf_p
, _scprintf_p_l
, _scwprintf_p
, _scwprintf_p_l
Mengembalikan jumlah karakter dalam string yang diformat, dengan kemampuan untuk menentukan urutan parameter yang digunakan dalam string format.
Sintaks
int _scprintf_p(
const char *format [,
argument] ...
);
int _scprintf_p_l(
const char *format,
_locale_t locale [,
argument] ...
);
int _scwprintf_p (
const wchar_t *format [,
argument] ...
);
int _scwprintf_p _l(
const wchar_t *format,
_locale_t locale [,
argument] ...
);
Parameter
format
String kontrol format.
argument
Argumen opsional.
locale
Lokal yang akan digunakan.
Nilai hasil
Mengembalikan jumlah karakter yang akan dihasilkan jika string akan dicetak atau dikirim ke file atau buffer menggunakan kode pemformatan yang ditentukan. Nilai yang dikembalikan tidak menyertakan karakter null yang dihentikan. _scwprintf_p
melakukan fungsi yang sama untuk karakter lebar.
Perbedaan antara _scprintf_p
dan _scprintf
adalah yang _scprintf_p
mendukung parameter posisi, yang memungkinkan menentukan urutan di mana argumen digunakan dalam string format. Untuk informasi selengkapnya, lihat Parameter Posisi printf_p.
Jika format
adalah NULL
penunjuk, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan -1 dan diatur errno
ke EINVAL
.
Untuk informasi tentang kode kesalahan ini dan lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Masing-masing argument
(jika ada) dikonversi sesuai dengan spesifikasi format yang sesuai di format
. Format terdiri dari karakter biasa dan memiliki bentuk dan fungsi yang sama dengan format
argumen untuk printf
.
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 rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_sctprintf_p |
_scprintf_p |
_scprintf_p |
_scwprintf_p |
_sctprintf_p_l |
_scprintf_p_l |
_scprintf_p_l |
_scwprintf_p_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_scprintf_p , _scprintf_p_l |
<stdio.h> |
_scwprintf_p , _scwprintf_p_l |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Baca juga
Streaming I/O
_scprintf
, _scprintf_l
, _scwprintf
, _scwprintf_l
_printf_p
, _printf_p_l
, _wprintf_p
, _wprintf_p_l
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