C-Bibliotheksfunktionen -vprintf()

C-Standardbibliothek - <stdio.h>

Beschreibung

C-Bibliotheksfunktionenint vprintf(const char *format, va_list arg)Sendet formatierte Ausgabe unter Verwendung einer Parameterliste an den Standardausgabestream stdout.

Deklaration

Nachfolgend ist die Deklaration der Funktion vprintf() angegeben.

int vprintf(const char *format, va_list arg)

Parameter

  • format-- Dies ist die Zeichenkette, die den Text enthält, der in den Standardausgabestream stdout geschrieben werden soll. Sie kann eingebettete Format-Tags enthalten, die durch die in den nachfolgenden zusätzlichen Argumenten angegebenen Werte ersetzt und nach Bedarf formatiert werden können. Die Eigenschaften der Format-Tags sind: %[flags][width][.precision][length]specifierDie detaillierte Erklärung lautet wie folgt:
FormatbezeichnerAusgabe
cZeichen
d oder iVorzeichenbehaftete Dezimalganzzahl
eWissenschaftliche Notation unter Verwendung des Zeichens e (Mantisse und Exponent)
EWissenschaftliche Notation unter Verwendung des Zeichens E (Mantisse und Exponent)
fDezimal-Gleitkommazahl
gWählt automatisch die geeignete Darstellung zwischen %e und %f aus.
GWählt automatisch die geeignete Darstellung zwischen %E und %f aus.
oOktalzahl mit Vorzeichen
sZeichenkette
uVorzeichenlose Dezimal-Ganzzahl
xVorzeichenlose Hexadezimal-Ganzzahl
XVorzeichenlose Hexadezimal-Ganzzahl (Großbuchstaben)
pZeigeradresse
nKeine Ausgabe
%Zeichen

FlagsBeschreibung
-Richtet die Ausgabe innerhalb der angegebenen Feldbreite linksbündig aus; standardmäßig ist sie rechtsbündig (siehe den Unterbezeichner width).
+Erzwingt, dass ein Plus- oder Minuszeichen (+ oder -) vor dem Ergebnis erscheint, d. h. positive Zahlen zeigen ein +-Zeichen. Standardmäßig wird nur negativen Zahlen ein -Zeichen vorangestellt.
(Leerzeichen)Wenn kein Vorzeichen geschrieben wird, wird ein Leerzeichen vor den Wert eingefügt.
#In Verbindung mit den Formatbezeichnern o, x oder X wird einem Wert ungleich null jeweils 0, 0x oder 0X vorangestellt.
In Verbindung mit e, E und f erzwingt es, dass die Ausgabe einen Dezimalpunkt enthält, selbst wenn keine Ziffern danach folgen. Standardmäßig wird der Dezimalpunkt nicht angezeigt, wenn keine Ziffern nach dem Dezimalpunkt folgen.
Bei Verwendung mit g oder G ist das Ergebnis dasselbe wie bei e oder E, aber nachfolgende Nullen werden nicht entfernt.
0Setzt Nullen (0) auf die linke Seite der Ziffern, die die Auffüllung bilden, anstelle von Leerzeichen (siehe den Unterbezeichner width).

widthBeschreibung
(Zahl)Die Mindestanzahl der auszugebenden Zeichen. Wenn der Ausgabewert kürzer als diese Anzahl ist, wird das Ergebnis mit Leerzeichen aufgefüllt. Wenn der Ausgabewert länger als diese Anzahl ist, wird das Ergebnis nicht abgeschnitten.
*Die Breite wird nicht im Formatstring angegeben, sondern als zusätzliches ganzzahliges Wertargument bereitgestellt, das vor dem zu formatierenden Argument platziert wird.

.precisionBeschreibung
.numberFür Integer-Spezifizierer (d, i, o, u, x, X): Die Präzision gibt die minimale Anzahl der zu schreibenden Ziffern an. Wenn der geschriebene Wert kürzer als diese Zahl ist, wird das Ergebnis mit führenden Nullen aufgefüllt. Wenn der geschriebene Wert länger als diese Zahl ist, wird das Ergebnis nicht abgeschnitten. Eine Präzision von 0 bedeutet, dass keine Zeichen geschrieben werden.
Für e-, E- und f-Spezifizierer: die Anzahl der Dezimalstellen, die nach dem Dezimalpunkt ausgegeben werden sollen.
Für die Spezifizierer g und G: die maximale Anzahl signifikanter Ziffern, die ausgegeben werden.
Für s: die maximale Anzahl Zeichen, die ausgegeben werden. Standardmäßig werden alle Zeichen ausgegeben, bis das abschließende Nullzeichen angetroffen wird.
Für den Typ c: hat keine Auswirkung.
Wenn keine Präzision angegeben ist, wird standardmäßig 1 verwendet. Wenn sie ohne expliziten Wert angegeben wird, wird 0 angenommen.
.*Die Genauigkeit wird nicht in der Formatzeichenfolge angegeben, sondern als zusätzliches ganzzahliges Wertargument bereitgestellt, das vor dem zu formatierenden Argument platziert wird.

lengthBeschreibung
hDas Argument wird als short int oder unsigned short int interpretiert (gilt nur für Ganzzahl-Formatbezeichner: i, d, o, u, x und X).
lDas Argument wird als long int oder unsigned long int interpretiert, anwendbar auf Integer-Spezifizierer (i, d, o, u, x und X) sowie die Spezifizierer c (für ein Breitzeichen) und s (für eine Breitzeichen-Zeichenkette).
LDas Argument wird als long double interpretiert (gilt nur für Gleitkomma-Formatbezeichner: e, E, f, g und G).
  • arg-- Ein Objekt, das die variable Argumentliste darstellt. Es sollte mit dem in <stdarg> definierten va_start-Makro initialisiert werden.

Rückgabewert

Bei Erfolg gibt sie die Gesamtzahl der geschriebenen Zeichen zurück; andernfalls gibt sie eine negative Zahl zurück.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Funktion vprintf().

Beispiel

#include <stdio.h>
#include <stdarg.h>

void WriteFrmtd(char *format, ...)
{
   va_list args;
   
   va_start(args, format);
   vprintf(format, args);
   va_end(args);
}

int main ()
{
   WriteFrmtd("%d variables Argument\n", 1);
   WriteFrmtd("%d variables %s\n", 2, "Argumente");
   
   return(0);
}

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

1 variable argument
2 variable arguments

C-Standardbibliothek - <stdio.h>

Weitere Erweiterungen