Menulis data yang diformat ke buffer yang ditentukan. Argumen apa pun dikonversi dan disalin ke buffer output sesuai dengan spesifikasi format yang sesuai dalam string format. Fungsi menambahkan karakter null yang mengakhiri ke karakter yang ditulisnya, tetapi nilai yang dikembalikan tidak menyertakan karakter null yang mengakhiri dalam jumlah karakternya.
Buffer yang akan menerima output yang diformat. Ukuran maksimum buffer adalah 1.024 byte.
[in] unnamedParam2
Jenis: LPCTSTR
Spesifikasi kontrol format. Selain karakter ASCII biasa, spesifikasi format untuk setiap argumen muncul dalam string ini. Untuk informasi selengkapnya tentang spesifikasi format, lihat bagian Keterangan.
...
Satu atau beberapa argumen opsional. Jumlah dan jenis parameter argumen bergantung pada spesifikasi kontrol format yang sesuai dalam parameter lpFmt .
Menampilkan nilai
Jenis: int
Jika fungsi berhasil, nilai yang dikembalikan adalah jumlah karakter yang disimpan dalam buffer output, tidak menghitung karakter null yang mengakhiri.
Jika fungsi gagal, nilai pengembalian kurang dari panjang output yang diharapkan. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
String kontrol format berisi spesifikasi format yang menentukan format output untuk argumen yang mengikuti parameter lpFmt . Spesifikasi format, yang dibahas di bawah ini, selalu dimulai dengan tanda persen (%). Jika tanda persen diikuti oleh karakter yang tidak memiliki arti sebagai bidang format, karakter tidak diformat (misalnya, %% menghasilkan karakter tanda persen tunggal).
String kontrol format dibaca dari kiri ke kanan. Ketika spesifikasi format pertama (jika ada) ditemukan, itu menyebabkan nilai argumen pertama setelah string kontrol format dikonversi dan disalin ke buffer output sesuai dengan spesifikasi format. Spesifikasi format kedua menyebabkan argumen kedua dikonversi dan disalin, dan sebagainya. Jika ada lebih banyak argumen daripada spesifikasi format, argumen tambahan diabaikan. Jika tidak ada cukup argumen untuk semua spesifikasi format, hasilnya tidak terdefinisi.
Spesifikasi format memiliki formulir berikut:
%[-][#][0][width][.presisi]type
Setiap bidang adalah karakter tunggal atau angka yang menandakan opsi format tertentu. Karakter jenis yang muncul setelah bidang format opsional terakhir menentukan apakah argumen terkait ditafsirkan sebagai karakter, string, atau angka. Spesifikasi format paling sederhana hanya berisi tanda persen dan karakter tipe (misalnya, %s). Bidang opsional mengontrol aspek lain dari pemformatan. Berikut ini adalah bidang opsional dan wajib serta maknanya.
Bidang
Makna
-
Pad output dengan kosong atau nol di sebelah kanan untuk mengisi lebar bidang, membenarkan output ke kiri. Jika bidang ini dihilangkan, output diisi ke kiri, membenarkannya ke kanan.
#
Awalan nilai heksadesimal dengan 0x (huruf kecil) atau 0X (huruf besar).
0
Pad nilai output dengan nol untuk mengisi lebar bidang. Jika bidang ini dihilangkan, nilai output diisi dengan spasi kosong.
width
Salin jumlah karakter minimum yang ditentukan ke buffer output. Bidang lebar adalah bilangan bulat nonnegatif. Spesifikasi lebar tidak pernah menyebabkan nilai terpotong; jika jumlah karakter dalam nilai output lebih besar dari lebar yang ditentukan, atau jika bidang lebar tidak ada, semua karakter nilai dicetak, tunduk pada spesifikasi presisi.
. Presisi
Untuk angka, salin jumlah digit minimum yang ditentukan ke buffer output. Jika jumlah digit dalam argumen kurang dari presisi yang ditentukan, nilai output diisi di sebelah kiri dengan nol. Nilai tidak dipotong ketika jumlah digit melebihi presisi yang ditentukan. Jika presisi yang ditentukan adalah 0 atau dihilangkan sepenuhnya, atau jika titik (.) muncul tanpa angka setelahnya, presisi diatur ke 1.
Untuk string, salin jumlah karakter maksimum yang ditentukan ke buffer output.
jenis
Keluarkan argumen yang sesuai sebagai karakter, string, atau angka. Bidang ini bisa menjadi salah satu nilai berikut.
c
Karakter tunggal. Nilai ini ditafsirkan sebagai jenis CHAR oleh wsprintfA dan ketik WCHAR oleh wsprintfW. Catatan wsprintf adalah makro yang didefinisikan sebagai wsprintfA (Unicode tidak ditentukan) atau wsprintfW (Unicode didefinisikan).
C
Karakter tunggal. Nilai ini ditafsirkan sebagai jenis WCHAR oleh wsprintfA dan jenis CHAR oleh wsprintfW. Catatan wsprintf adalah makro yang didefinisikan sebagai wsprintfA (Unicode tidak ditentukan) atau wsprintfW (Unicode didefinisikan).
d
Bilangan bulat desimal yang ditandatangani. Nilai ini setara dengan i.
hc, hC
Karakter tunggal. Jika karakter memiliki nilai numerik nol, karakter akan diabaikan.
Nilai ini selalu ditafsirkan sebagai jenis CHAR, bahkan ketika aplikasi panggilan mendefinisikan Unicode.
hd
Argumen bilangan bulat pendek yang ditandatangani.
hs, hS
String. Nilai ini selalu ditafsirkan sebagai jenis LPSTR, bahkan ketika aplikasi panggilan mendefinisikan Unicode.
hu
Bilangan bulat pendek yang tidak ditandatangani.
i
Bilangan bulat desimal yang ditandatangani. Nilai ini setara dengan d.
Ix, IX
Bilangan bulat heksadesimal tak bertanda 64 bit dalam huruf kecil atau huruf besar pada platform 64-bit, bilangan bulat heksadesimal tidak bertanda 32 bit dalam huruf kecil atau huruf besar pada platform 32-bit.
lc, lC
Karakter tunggal. Jika karakter memiliki nilai numerik nol, karakter akan diabaikan.
Nilai ini selalu ditafsirkan sebagai jenis WCHAR, bahkan ketika aplikasi panggilan mendefinisikan Unicode.
ld
Bilangan bulat bertanda tangan panjang. Nilai ini setara dengan li.
li
Bilangan bulat bertanda tangan panjang. Nilai ini setara dengan ld.
ls, lS
String. Nilai ini selalu ditafsirkan sebagai jenis LPWSTR, bahkan ketika aplikasi panggilan tidak menentukan Unicode. Nilai ini setara dengan ws.
lu
Bilangan bulat panjang yang tidak ditandatangani.
lx, lX
Bilangan bulat heksadesimal panjang yang tidak ditandatangani dalam huruf kecil atau huruf besar.
p
Pointer. Alamat dicetak menggunakan heksadesimal.
s
String. Nilai ini ditafsirkan sebagai jenis LPSTR oleh wsprintfA dan jenis LPWSTR oleh wsprintfW. Catatan wsprintf adalah makro yang didefinisikan sebagai wsprintfA (Unicode tidak ditentukan) atau wsprintfW (Unicode didefinisikan).
S
String. Nilai ini ditafsirkan sebagai jenis LPWSTR oleh wsprintfA dan jenis LPSTR oleh wsprintfW. Catatan wsprintf adalah makro yang didefinisikan sebagai wsprintfA (Unicode tidak ditentukan) atau wsprintfW (Unicode didefinisikan).
u
Argumen bilangan bulat tidak ditandatangani.
x, X
Bilangan bulat heksadesimal yang tidak ditandatangani dalam huruf kecil atau huruf besar.
Catatan Penting untuk dicatat bahwa wsprintf menggunakan konvensi panggilan C (_cdecl), daripada konvensi panggilan standar (_stdcall). Akibatnya, adalah tanggung jawab proses panggilan untuk memunculkan argumen dari tumpukan, dan argumen didorong pada tumpukan dari kanan ke kiri. Dalam modul bahasa C, pengkompilasi C melakukan tugas ini.
Untuk menggunakan buffer yang lebih besar dari 1024 byte, gunakan _snwprintf. Untuk informasi selengkapnya, lihat dokumentasi untuk pustaka run-time C.
Catatan
Header winuser.h mendefinisikan wsprintf sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan
Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]