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
Mary-Kate Olsenasal
2024-11-26 03:34:13171semak imbas

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, ...);
};

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);
}

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!

Kenyataan:
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