Vsnprintf Funktion in c

Vsnprintf Funktion in c

Vsnprintf () ist eine Art von Funktion, mit der das Zeichenarray mit den formatierten Daten in den Argumentlisten gedruckt wird. In einfachen Worten schreibt diese Funktion einfach die bereits formatierten Daten, die in der Variablenliste "Typ" Argumente in einen Pufferzeichen gespeichert sind. Diese Funktion komponiert eine Zeichenfolge, wenn wir dasselbe Format wie im variablen Argument der Printf () -Methode verwenden. Es verwendet jedoch die bereits identifizierten Elemente aus den Argumenten in der variablen Argumentliste und speichert das Ergebnis in der Form der Pufferzeichenfolge in C, die vom Zeiger des Arrays angezeigt wird, in dem die Ausgabe in den Argumenten druckt. Es nimmt auch die Größe des Puffers oder die Kapazität des Arrays, um die Zahlen in Bezug auf Zeichen zu füllen.

Verfahren

In diesem Artikel wird erörtert, wie wir das Konzept hinter den VSNPrintf () -Methoden lernen werden. Es zeigt auch die Reihenfolge, in der wir mit der Implementierung der Funktion zu verschiedenen Beispielen etwas über die Syntax für diese Funktion erfahren werden. Zuletzt werden wir unser Thema abschließen, damit wir das überarbeiten lassen.

Syntax

Die vsnprintf -Funktion wird geschrieben und erklärt, wie wir eine andere Funktion schreiben. Die Argumentliste für diese Funktion variiert jedoch ein wenig. Die Funktion vsnprintf () mit ihrer Argumentliste ist im Folgenden angegeben:

$ Int vsnprintf (char * array, size_length_array, const wchar_t * Format, va_ ​​list args)

Wir diskutieren nun die Anforderungen jedes Arguments für diese Funktion eins nacheinander. Das erste Argument ist der Zeiger, der auf das Datentyp „char“ -Array verweist, in dem wir die Ausgabe drucken möchten. Das zweite Argument repräsentiert die maximalen Zeichen, die das Array darin speichern kann. Das dritte Argument repräsentiert den Formatzeiger, der auf das Format verweist, in dem wir die Ausgabe drucken möchten. Und das letzte ist "va_list args", von dem bekannt ist, dass es sich um einen Typ handelt, der die erforderlichen Informationen über die variablen Argumente der Funktionen enthält. Hier fungiert es als Zeiger, der auf die Argumentliste hinweist.

Rückgabetyp

Der Rückgabetyp dieser Funktion ist Ganzzahlen. Diese Funktion gibt die Zeichen zurück, wenn das Programm erfolgreich wird, ohne die Nullzeichen für die Beendigung zu zählen. Es könnte einen negativen Wert im Falle des Versagens des Programms zurückgeben.

Beispiel:

Wir initiieren die Implementierung der zuvor erwähnten Funktion, der Funktion vsnprintf () mit Hilfe dieses Beispiels. Wir implementieren dieses Beispiel im Microsoft Visual Studio in der C -Programmiersprache C. Die Funktion vsnprintf () wird zum Schreiben/Drucken der formatierten variablen Argumentliste in die Array- oder Pufferzeichenfolge verwendet. In diesem Beispiel erstellen wir zuerst eine variable Argumentliste und drucken dann diese Argumentliste, um ein Datentyp „char“ -Array zu drucken.

Erstellen Sie zunächst ein neues Projekt im Visual Studio. Fügen Sie das Projekt zum Pfad der C -Dateien hinzu, indem Sie dieses Projekt auf die grundlegenden Bibliotheken des C zugreifen, indem Sie die Quelldatei hinzufügen.C ”Erweiterung mit dem Namen des Projekts und speichern Sie es. Der nächste und der grundlegendste Schritt beim Erstellen eines Programms besteht darin, die speziellen Bibliotheken in das Programm zu importieren, damit Sie auf die erforderlichen Standardfunktionen dieser Bibliotheken später im Programm zugreifen können. Wir importieren die folgenden zwei Header -Dateien für dieses Programm:

$ # inklusive
$ # inklusive

Die erste Header -Datei sorgt dafür, dass die Funktionen für Printf () und Scanf () enthalten sind. Die zweite ist die Header -Datei, die wir speziell importiert haben, um die Methode vsnprintf () nach dem Erstellen der variablen Argumentliste zu verwenden. Nachdem wir die beiden vorherigen Header -Dateien in das Projekt aufgenommen haben, sind wir bereit, den Teil unseres Programms zu implementieren, der sich mit dem Erstellen von Code für unser Beispiel befasst. Wir erstellen eine Funktion mit dem Rückgabetyp von Ganzzahl "int" und nennen diese Funktion "formattedlist". Diese Funktion repliziert alle Parameter, die wir in diesem Artikel bereits für die Funktion vsnprintf () als Argumente der Funktion besprochen haben. Der erste Parameter, den wir an diese Funktion übergeben. Dann geben wir die Größe dieses Arrays an und bestehen das Format, in dem wir unser Array in dieser Funktion drucken.

Wir initialisieren zunächst die Länge des Puffer als „0“. Anschließend erstellen oder initialisieren wir eine variable Argumentliste für diese Funktion mit dem Typ "va_list" und nennen "Argumente". Dann starten wir diese VA_ -Liste, indem wir das "va_start ()" aufrufen und sie das Format und die Argumente als Parameter übergeben. Anschließend definieren wir die Länge für den Puffer, indem wir den vsnprintf () aufrufen und alle Objekte für die Zeiger übergeben. Wir beenden die Argumentliste, indem wir die va_end () aufrufen und aus der Funktion herauskommen, indem sie die Länge zurückgeben.

Jetzt erklären wir die Hauptfunktion. In dieser Hauptfunktion deklarieren wir ein „Puffer“ -Array mit der Größe von „50“. Dann erstellen wir das Argumentarray der Größe „50“ und weisen es den Zeichen „Du hast es gut ab.“. Anschließend initialisieren wir die Länge in dieser Hauptfunktion erneut und rufen die Funktion formattedList () auf und übergeben sie die Parameter gemäß den zuvor definierten Parametern, die wir zuvor für die Länge definiert haben, während die Funktion „Formattedlist“ erstellt wurde, während die Funktion „Formattedlist“ erstellt wurde. Diesmal übergeben wir die „Argumente“ als Parameter für diese Funktion. Anschließend zeigen wir diese Länge und das Array an, indem wir die Printf () -Methode wie im folgenden Code -Snippet aufgerufen haben:

# enthalten
# enthalten
int formatedList (char* puffer, int puffersize, const char* format,…)

int länge = 0; m
VA_LIST -Argumente;
va_start (Argumente, Format);
Länge = vsnprintf (Puffer, Puffergröße, Format, Argumente);
va_end (Argumente);
Rücklauflänge;

int main ()

Zeichenpuffer [50];
Zeichenargumente [50] = "Du hast es gut gemacht";
int länge = formattedlist (puffer, 50, "%s", Argumente);
printf ("Array: %s \ n", Puffer);
printf ("Zahlen in Array: %d \ n", Länge);
Rückkehr 0;


Nach der Ausführung des zuvor erwähnten Programms komponierte es zunächst eine formatierte Zeichenfolge und druckte diese formatierte Zeichenfolge in der Form des String-Puffer oder des Zeichenarrays aus.

Abschluss

Dieser Artikel leitet uns darüber, wie wir das Konzept der Funktion vsnprinft () verwenden können, um das Datentyp -Zeichen „char“ -Array aus der Liste der bereits formatierten Argumente zu drucken. Wir haben ein Beispiel zu dieser Funktion gemacht, um die Gedanken zu klären und eine praktische Erfahrung zu diesem Thema zu machen.