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!