Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Kelas C Boleh Mengendalikan Argumen Pembolehubah dengan printf/sprintf?

Bagaimanakah Kelas C Boleh Mengendalikan Argumen Pembolehubah dengan printf/sprintf?

Mary-Kate Olsen
Lepaskan: 2024-11-26 03:34:13
asal
217 orang telah melayarinya

How Can a C   Class Handle Variable Arguments with printf/sprintf?

Melalukan Argumen Pembolehubah ke printf/sprintf

Soalan:

Bagaimanakah kelas boleh mentakrifkan kaedah yang menerima pembolehubah bilangan argumen dan memformatkannya printf?

Contoh:

Pertimbangkan kelas dengan kaedah "ralat":

class MyClass
{
public:
    void Error(const char* format, ...);
};
Salin selepas log masuk

Kaedah Ralat harus mendapatkan kembali argumen pembolehubah, formatkannya menggunakan printf/sprintf, dan lakukan beberapa tindakan.

Jawapan:

Untuk mencapai ini, gunakan vfprintf:

void Error(const char* format, ...)
{
    va_list argptr;
    va_start(argptr, format);
    vfprintf(stderr, format, argptr);
    va_end(argptr);
}
Salin selepas log masuk

Ini mengeluarkan teks yang diformatkan kepada stderr. Untuk menyimpan output ke rentetan, gunakan vsnprintf sebaliknya. Elakkan menggunakan vsprintf, kerana ia boleh menyebabkan limpahan penimbal.

Atas ialah kandungan terperinci Bagaimanakah Kelas C Boleh Mengendalikan Argumen Pembolehubah dengan printf/sprintf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan