Variable Argumente an printf/sprintf übergeben
Frage:
Wie kann eine Klasse definieren eine Methode, die eine variable Anzahl von Argumenten akzeptiert und diese mit formatiert printf?
Beispiel:
Betrachten Sie eine Klasse mit einer „error“-Methode:
class MyClass { public: void Error(const char* format, ...); };
Die Error-Methode sollte die Variablenargumente abrufen, Formatieren Sie sie mit printf/sprintf und führen Sie einige Schritte aus Aktion.
Antwort:
Um dies zu erreichen, verwenden Sie vfprintf:
void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); }
Dadurch wird der formatierte Text an stderr ausgegeben. Um die Ausgabe in einer Zeichenfolge zu speichern, verwenden Sie stattdessen vsnprintf. Vermeiden Sie die Verwendung von vsprintf, da dies zu Pufferüberläufen führen kann.
Das obige ist der detaillierte Inhalt vonWie kann eine C-Klasse variable Argumente mit printf/sprintf verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!