_cprintf_p
, , _cprintf_p_l
_cwprintf_p
,_cwprintf_p_l
Memformat dan mencetak ke konsol, dan mendukung parameter posisi dalam string format.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
int _cprintf_p(
const char * format [,
argument] ...
);
int _cprintf_p_l(
const char * format,
_locale_t locale [,
argument] ...
);
int _cwprintf_p(
const wchar * format [,
argument] ...
);
int _cwprintf_p_l(
const wchar * format,
_locale_t locale [,
argument] ...
);
Parameter
format
String kontrol format.
argument
Parameter opsional.
locale
Lokal yang akan digunakan.
Nilai hasil
Jumlah karakter yang dicetak atau nilai negatif jika terjadi kesalahan.
Keterangan
Fungsi-fungsi ini memformat dan mencetak serangkaian karakter dan nilai langsung ke konsol, menggunakan _putch
fungsi dan _putwch
untuk menghasilkan karakter. Masing-masing argument
(jika ada) dikonversi dan output sesuai dengan spesifikasi format yang sesuai di format
. Format memiliki bentuk dan fungsi yang sama dengan format
parameter untuk fungsi .printf_p
Perbedaan antara _cprintf_p
dan cprintf_s
adalah yang _cprintf_p
mendukung parameter posisi, yang memungkinkan menentukan urutan di mana argumen digunakan dalam string format. Untuk informasi selengkapnya, lihat Parameter Posisi printf_p.
fprintf_p
Tidak seperti fungsi , printf_p
, dan sprintf_p
, _cprintf_p
dan _cwprintf_p
tidak menerjemahkan karakter umpan baris ke dalam kombinasi umpan baris kembali pengangkutan (CR-LF) saat output. Perbedaan penting adalah menampilkan _cwprintf_p
karakter Unicode saat digunakan di Windows NT. Tidak seperti _cprintf_p
, _cwprintf_p
menggunakan pengaturan lokal konsol saat ini.
Versi fungsi-fungsi ini dengan _l
akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal saat ini.
Selain itu, seperti _cprintf_s
dan _cwprintf_s
, mereka memvalidasi penunjuk input dan string format. Jika format
atau argument
adalah NULL
, atau string format berisi karakter pemformatan yang tidak valid, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan -1 dan diatur errno
ke EINVAL
.
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 |
---|---|---|---|
_tcprintf_p |
_cprintf_p |
_cprintf_p |
_cwprintf_p |
_tcprintf_p_l |
_cprintf_p_l |
_cprintf_p_l |
_cwprintf_p_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_cprintf_p , _cprintf_p_l |
<conio.h> |
_cwprintf_p , _cwprintf_p_l |
<conio.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_cprintf_p.c
// This program displays some variables to the console
// using the _cprintf_p function.
#include <conio.h>
int main( void )
{
int i = -16,
h = 29;
unsigned u = 62511;
char c = 'A';
char s[] = "Test";
// Note that console output does not translate
// \n as standard output does. Use \r\n instead.
_cprintf_p( "%2$d %1$.4x %3$u %4$c %5$s\r\n",
h, i, u, c, s );
}
-16 001d 62511 A Test
Lihat juga
I/O konsol dan port
_cscanf
, , _cscanf_l
_cwscanf
,_cwscanf_l
_cscanf_s
, , _cscanf_s_l
_cwscanf_s
,_cwscanf_s_l
_fprintf_p
, , _fprintf_p_l
_fwprintf_p
,_fwprintf_p_l
fprintf_s
, , _fprintf_s_l
fwprintf_s
,_fwprintf_s_l
_printf_p
, , _printf_p_l
_wprintf_p
,_wprintf_p_l
printf_s
, , _printf_s_l
wprintf_s
,_wprintf_s_l
_sprintf_p
, , _sprintf_p_l
_swprintf_p
,_swprintf_p_l
_vfprintf_p
, , _vfprintf_p_l
_vfwprintf_p
,_vfwprintf_p_l
_cprintf_s
, , _cprintf_s_l
_cwprintf_s
,_cwprintf_s_l
Parameter Posisi printf_p
Sintaks spesifikasi format: printf
dan wprintf
fungsi