將變數參數傳遞給printf/sprintf
問題:
類別如何定義一種接受可變數量參數並使用它們格式化它們的方法printf?
範例:
考慮一個有「錯誤」方法的類別:
class MyClass { public: void Error(const char* format, ...); };
Error方法應該檢索變數參數,使用printf/sprintf 格式化它們,並執行一些
答案:
要完成此操作,請使用vfprintf:
void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); }
這會將格式化文字輸出到stderr。若要將輸出儲存到字串,請改用 vsnprintf。避免使用 vsprintf,因為它可能導致緩衝區溢位。
以上是C 類別如何使用 printf/sprintf 處理變數參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!