Heim >Backend-Entwicklung >C++ >Wie kann eine C-Klasse variable Argumente mit printf/sprintf verarbeiten?

Wie kann eine C-Klasse variable Argumente mit printf/sprintf verarbeiten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-26 03:34:13234Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn