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
Freigeben: 2024-11-26 03:34:13
Original
217 Leute haben es durchsucht

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, ...);
};
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage