Heim >Backend-Entwicklung >C++ >Wie kann ich eine variable Anzahl von Argumenten an printf/sprintf übergeben?
Variable Argumente an printf/sprintf übergeben
Bei der Programmierung besteht häufig die Notwendigkeit, Text oder Daten variabler Länge zu formatieren und anzuzeigen. Eine Aufgabe, die üblicherweise von Funktionen wie printf und sprintf erledigt wird. Diese Funktionen erfordern jedoch normalerweise eine feste Anzahl von Argumenten. Wie können wir eine variable Anzahl von Argumenten an diese Funktionen übergeben?
Die Lösung: Verwendung von va_*-Funktionen
Die C-Sprache stellt eine Reihe von Funktionen mit dem Präfix „va_“ bereit. ", die es uns ermöglichen, mit Argumentlisten variabler Länge zu arbeiten. Zu diesen Funktionen gehören va_start, va_arg und va_end.
Um eine variable Anzahl von Argumenten an printf oder sprintf zu übergeben, können wir die folgenden Schritte verwenden:
Beispiel:
#include <stdio.h> #include <stdarg.h> class MyClass { public: void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); } };
In diesem Beispiel akzeptiert die Error-Methode eine Formatzeichenfolge und eine variable Anzahl von Argumenten. Es verwendet va_arg, um die Argumente abzurufen, und ruft dann vfprintf auf, um den Text zu formatieren und an stderr auszugeben.
Hinweis:
Es ist zwar möglich, vsprintf anstelle von vfprintf zu verwenden, Dies wird nicht empfohlen, da es anfällig für Pufferüberläufe ist.
Das obige ist der detaillierte Inhalt vonWie kann ich eine variable Anzahl von Argumenten an printf/sprintf übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!