Namensräume
Varianten
Aktionen

printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s

Von cppreference.com
< c‎ | io
 
 
Datei-Ein-/Ausgabe
Typen und Objekte
        
Funktionen
Datei-Zugriff
(C95)
Unformatierte Ein-/Ausgabe
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Formatierte Eingabe
Direkte Ein-/Ausgabe
Formatierte Ausgabe
printffprintfsprintfsnprintfprintf_sfprintf_ssprintf_ssnprintf_s
(C99)(C11)(C11)(C11)(C11)
Dateipositionierung
Fehlerbehandlung
Operationen auf Dateien
 
Definiert in Header <stdio.h>
(1)
int printf( const char*          format, ... );
(bis C99)
int printf( const char* restrict format, ... );
(seit C99)
(2)
int fprintf( FILE*          stream, const char*          format, ... );
(bis C99)
int fprintf( FILE* restrict stream, const char* restrict format, ... );
(seit C99)
(3)
int sprintf( char*          buffer, const char*          format, ... );
(bis C99)
int sprintf( char* restrict buffer, const char* restrict format, ... );
(seit C99)
int snprintf( char* restrict buffer, size_t bufsz,
              const char* restrict format, ... );
(4) (seit C99)
int printf_s( const char* restrict format, ... );
(5) (seit C11)
int fprintf_s( FILE* restrict stream, const char* restrict format, ... );
(6) (seit C11)
int sprintf_s( char* restrict buffer, rsize_t bufsz,
               const char* restrict format, ... );
(7) (seit C11)
int snprintf_s( char* restrict buffer, rsize_t bufsz,
                const char* restrict format, ... );
(8) (seit C11)

Lädt die Daten von den angegebenen Speicherorten, konvertiert sie in Zeichenkettenäquivalente und schreibt die Ergebnisse in eine Vielzahl von Senken/Streams

1) Schreibt die Ergebnisse in den Ausgabestream stdout.
2) Schreibt die Ergebnisse in den Ausgabestream stream.
3) Schreibt die Ergebnisse in eine Zeichenkette buffer. Das Verhalten ist undefiniert, wenn die zu schreibende Zeichenkette (plus das abschließende Nullzeichen) die Größe des von buffer bezeichneten Arrays überschreitet.
4) Schreibt die Ergebnisse in eine Zeichenkette buffer. Maximal bufsz - 1 Zeichen werden geschrieben. Die resultierende Zeichenkette wird mit einem Nullzeichen abgeschlossen, es sei denn, bufsz ist null. Wenn bufsz null ist, wird nichts geschrieben und buffer kann ein Nullzeiger sein, jedoch wird der Rückgabewert (Anzahl der Bytes, die geschrieben würden, exklusive des Nullterminators) immer noch berechnet und zurückgegeben.
5-8) Dieselbe wie (1-4), außer dass die folgenden Fehler zur Laufzeit erkannt werden und die aktuell installierte Constraint-Handler-Funktion aufrufen
  • der Konvertierungsspezifizierer %n im format vorhanden ist
  • eines der Argumente, die %s entsprechen, ein Nullzeiger ist
  • stream oder format oder buffer ist ein Nullzeiger
  • bufsz ist null oder größer als RSIZE_MAX
  • bei der Konvertierung von Zeichenketten und Zeichenspezifizierern Kodierungsfehler auftreten
  • (nur für sprintf_s) würde die Zeichenkette, die in buffer gespeichert werden soll (einschließlich des abschließenden Nullzeichens), bufsz überschreiten.
Wie bei allen grenzgeprüften Funktionen sind printf_s, fprintf_s, sprintf_s und snprintf_s nur dann garantiert verfügbar, wenn __STDC_LIB_EXT1__ von der Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT1__ auf die Ganzzahlkonstante 1 setzt, bevor <stdio.h> eingebunden wird.

Inhalt

[edit] Parameter

stream - Ausgabestream, in den geschrieben werden soll
buffer - Zeiger auf eine Zeichenkette, in die geschrieben werden soll
bufsz - bis zu bufsz - 1 Zeichen dürfen geschrieben werden, plus der Nullterminator
format - Zeiger auf eine nullterminierte Byte-Zeichenkette, die angibt, wie die Daten zu interpretieren sind
... - Argumente, die die zu druckenden Daten angeben. Wenn ein Argument nach den Standard-Argument-Promotions nicht dem erwarteten Typ des entsprechenden Konvertierungsspezifikators entspricht (der erwartete Typ ist der promovierte Typ oder ein damit kompatibler Typ des promovierten Typs), oder wenn weniger Argumente vorhanden sind als von format gefordert, ist das Verhalten undefiniert. Wenn mehr Argumente vorhanden sind als von format gefordert, werden die überschüssigen Argumente ausgewertet und ignoriert.

Die format-Zeichenkette besteht aus gewöhnlichen Byte-Zeichen (außer %), die unverändert in den Ausgabestrom kopiert werden, und Konversionsspezifikationen. Jede Konversionsspezifikation hat das folgende Format:

  • ein einführendes %-Zeichen.
  • (optional) ein oder mehrere Flags, die das Verhalten der Konversion modifizieren
  • -: Das Ergebnis der Konversion wird im Feld linksbündig ausgerichtet (standardmäßig rechtsbündig).
  • +: Das Vorzeichen von Vorzeichenkonversionen wird immer dem Ergebnis der Konversion vorangestellt (standardmäßig wird dem Ergebnis nur dann ein Minus vorangestellt, wenn es negativ ist).
  • Leerzeichen: Wenn das Ergebnis einer Vorzeichenkonversion nicht mit einem Vorzeichen beginnt oder leer ist, wird dem Ergebnis ein Leerzeichen vorangestellt. Es wird ignoriert, wenn das Flag + vorhanden ist.
  • #: Eine alternative Form der Konversion wird durchgeführt. Die genauen Effekte sind in der untenstehenden Tabelle aufgeführt, andernfalls ist das Verhalten undefiniert.
  • 0: Bei Ganzzahl- und Gleitkommazahlenkonversionen werden die Felder mit Nullen aufgefüllt anstelle von Leerzeichen. Bei Ganzzahlen wird dies ignoriert, wenn die Genauigkeit explizit angegeben ist. Bei anderen Konversionen führt die Verwendung dieses Flags zu undefiniertem Verhalten. Es wird ignoriert, wenn das Flag - vorhanden ist.
  • (optional) Ganzzahlwert oder *, der die minimale Feldbreite angibt. Das Ergebnis wird mit Leerzeichen (standardmäßig) aufgefüllt, falls erforderlich, links bei rechtsbündiger Ausrichtung oder rechts bei linksbündiger Ausrichtung. Wenn * verwendet wird, wird die Breite durch ein zusätzliches Argument vom Typ int angegeben, das vor dem zu konvertierenden Argument und dem Argument für die Präzision (falls vorhanden) steht. Wenn der Wert des Arguments negativ ist, führt dies zur Angabe des - Flags und einer positiven Feldbreite (Hinweis: Dies ist die minimale Breite: Der Wert wird nie gekürzt).
  • (optional) . gefolgt von einer Ganzzahl oder *, oder weder noch, das die Präzision der Konvertierung angibt. Wenn * verwendet wird, wird die Präzision durch ein zusätzliches Argument vom Typ int angegeben, das vor dem zu konvertierenden Argument steht, aber nach dem Argument für die minimale Feldbreite (falls vorhanden). Wenn der Wert dieses Arguments negativ ist, wird es ignoriert. Wenn weder eine Zahl noch * verwendet wird, wird die Präzision als Null angenommen. Die genauen Auswirkungen der Präzision finden Sie in der folgenden Tabelle.
  • (optional) Ein Längenmodifikator, der die Größe des Arguments angibt (in Kombination mit dem Konversionsformat-Spezifizierer gibt er den Typ des entsprechenden Arguments an).
  • Ein Konversionsformat-Spezifizierer.

Die folgenden Format-Spezifizierer sind verfügbar:

Konversion
Spezifizierer
Erklärung Erwartet
Argumenttyp
Längenmodifikator → hh h keine l ll j z t L
Nur verfügbar seit C99 → Ja Ja Ja Ja Ja
% Schreibt ein literales %. Die vollständige Konversionsspezifikation muss %% sein. N/A N/A N/A N/A N/A N/A N/A N/A N/A
c

Schreibt ein einzelnes Zeichen.

  • Das Argument wird zuerst in unsigned char konvertiert.
  • Wenn der Modifikator l verwendet wird, wird das Argument zuerst in eine Zeichenkette konvertiert, als ob es mit %ls mit einem wchar_t[2]-Argument wäre.
N/A N/A
int
wint_t
N/A N/A N/A N/A N/A
s

Schreibt eine Zeichenkette.

  • Das Argument muss ein Zeiger auf das erste Element eines Arrays von Zeichen sein.
  • Genauigkeit gibt die maximal zu schreibende Byte-Anzahl an. Wenn Genauigkeit nicht angegeben ist, werden alle Bytes bis zum ersten Nullterminator (ausschließlich) geschrieben.
  • Wenn der l-Spezifikator verwendet wird, muss das Argument ein Zeiger auf das erste Element eines Arrays von wchar_t sein, das in ein Char-Array konvertiert wird, als ob es durch einen Aufruf von wcrtomb mit einer nullinitialisierten Konvertierungszustand erfolgt wäre.
N/A N/A
char*
wchar_t*
N/A N/A N/A N/A N/A
d
i

Konvertiert eine vorzeichenbehaftete Ganzzahl in die Dezimaldarstellung [-]dddd.

  • Präzision gibt die minimale Anzahl von Ziffern an, die erscheinen sollen. Die Standardpräzision ist 1.
  • Wenn sowohl der konvertierte Wert als auch die Präzision 0 sind, erzeugt die Konvertierung keine Zeichen.
  • Für den z-Modifikator ist der erwartete Argumenttyp die vorzeichenbehaftete Version von size_t.
signed char
short
int
long
long long
N/A
o

Konvertiert eine vorzeichenlose Ganzzahl in die Oktaldarstellung oooo.

  • Präzision gibt die minimale Anzahl von Ziffern an, die erscheinen sollen. Die Standardpräzision ist 1.
  • Wenn sowohl der konvertierte Wert als auch die Präzision 0 sind, erzeugt die Konvertierung keine Zeichen.
  • In der alternativen Implementierung wird die Präzision bei Bedarf erhöht, um eine führende Null zu schreiben. In diesem Fall wird, wenn sowohl der konvertierte Wert als auch die Präzision 0 sind, eine einzelne 0 geschrieben.
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long
vorzeichenbehaftete Version von ptrdiff_t
N/A
x
X

Konvertiert eine vorzeichenlose Ganzzahl in die Hexadezimaldarstellung hhhh.

  • Für die x-Konversionsbuchstaben werden abcdef verwendet.
  • Für die X-Konversionsbuchstaben werden ABCDEF verwendet.
  • Präzision gibt die minimale Anzahl von Ziffern an, die erscheinen sollen. Die Standardpräzision ist 1.
  • Wenn sowohl der konvertierte Wert als auch die Präzision 0 sind, erzeugt die Konvertierung keine Zeichen.
  • In der alternativen Implementierung wird den Ergebnissen 0x oder 0X vorangestellt, wenn der konvertierte Wert ungleich Null ist.
N/A
u

Konvertiert eine vorzeichenlose Ganzzahl in die Dezimaldarstellung dddd.

  • Genauigkeit gibt die minimale Anzahl der anzuzeigenden Ziffern an.
  • Die Standardpräzision ist 1.
  • Wenn sowohl der konvertierte Wert als auch die Präzision 0 sind, erzeugt die Konvertierung keine Zeichen.
N/A
f
F (C99)

Konvertiert eine Gleitkommazahl in die Dezimalnotation im Stil [-]ddd.ddd.

  • Genauigkeit gibt die genaue Anzahl der Ziffern nach dem Dezimaltrennzeichen an.
  • Die Standardpräzision ist 6.
  • In der alternativen Implementierung wird das Dezimaltrennzeichen auch dann geschrieben, wenn keine Ziffern darauf folgen.
  • Informationen zur Konversion von Unendlichkeit und Nicht-Zahl im Hinblick auf den Stil finden Sie unter Anmerkungen.
N/A N/A
double
double (C99)
N/A N/A N/A N/A
long double
e
E

Konvertiert eine Gleitkommazahl in die Dezimal-Exponent-Notation.

  • Für den e-Konversionsstil wird [-]d.ddd e±dd verwendet.
  • Für den E-Konversionsstil wird [-]d.ddd E±dd verwendet.
  • Der Exponent enthält mindestens zwei Ziffern, mehr Ziffern werden nur bei Bedarf verwendet.
  • Wenn der Wert 0 ist, ist auch der Exponent 0.
  • Genauigkeit gibt die genaue Anzahl der Ziffern nach dem Dezimaltrennzeichen an.
  • Die Standardpräzision ist 6.
  • In der alternativen Implementierung wird das Dezimaltrennzeichen auch dann geschrieben, wenn keine Ziffern darauf folgen.
  • Informationen zur Konversion von Unendlichkeit und Nicht-Zahl im Hinblick auf den Stil finden Sie unter Anmerkungen.
N/A N/A N/A N/A N/A N/A
a
A

(C99)

Konvertiert eine Gleitkommazahl in die Hexadezimal-Exponent-Notation.

  • Für den a-Konversionsstil wird [-] 0xh.hhh p±d verwendet.
  • Für den A-Konversionsstil wird [-] 0Xh.hhh P±d verwendet.
  • Die erste Hexadezimalziffer ist nicht 0, wenn das Argument ein normalisierter Gleitkommawert ist.
  • Wenn der Wert 0 ist, ist auch der Exponent 0.
  • Genauigkeit gibt die exakte Anzahl der Ziffern nach dem Hexadezimaltrennzeichen an.
  • Die Standardgenauigkeit ist ausreichend für die exakte Darstellung des Wertes.
  • In der alternativen Implementierung wird das Dezimaltrennzeichen auch dann geschrieben, wenn keine Ziffern darauf folgen.
  • Informationen zur Konversion von Unendlichkeit und Nicht-Zahl im Hinblick auf den Stil finden Sie unter Anmerkungen.
N/A N/A N/A N/A N/A N/A
g
G

Konvertiert eine Gleitkommazahl je nach Wert und Genauigkeit in die Dezimal- oder Dezimal-Exponent-Notation.

  • Für den g-Konversionsstil wird die Konversion mit dem Stil e oder f durchgeführt.
  • Für den G-Konvertierungsstil wird die Konvertierung im Stil E oder f(bis C99)F(seit C99) durchgeführt.
  • Sei P gleich der Präzision, wenn sie ungleich Null ist, 6, wenn die Präzision nicht angegeben ist, oder 1, wenn die Präzision 0 ist. Dann, wenn eine Konvertierung mit dem Stil E einen Exponenten von X hätte
    • Wenn P > X ≥ −4, erfolgt die Konvertierung im Stil f oder F(seit C99) und mit der Präzision P − 1 − X.
    • Andernfalls erfolgt die Konversion im Stil e oder E mit einer Genauigkeit von P − 1.
  • Sofern keine alternative Darstellung angefordert wird, werden nachfolgende Nullen entfernt, und das Dezimaltrennzeichen wird entfernt, wenn kein Bruchteil übrig bleibt.
  • Informationen zur Konversion von Unendlichkeit und Nicht-Zahl im Hinblick auf den Stil finden Sie unter Anmerkungen.
N/A N/A N/A N/A N/A N/A
n

Gibt die bisher von diesem Funktionsaufruf geschriebene Anzahl der Zeichen zurück.

  • Das Ergebnis wird an den Wert geschrieben, auf den das Argument zeigt.
  • Die Spezifikation darf keine Flags, Feldbreiten oder Genauigkeiten enthalten.
  • Für den z-Modifikator ist der erwartete Argumenttyp S*, wobei S die vorzeichenbehaftete Version von size_t ist.
signed char*
short*
int*
long*
long long*
N/A
p

Schreibt eine implementierungsdefinierte Zeichensequenz, die einen Zeiger darstellt.

N/A N/A
void*
N/A N/A N/A N/A N/A N/A
Anmerkungen

Die Gleitkommakonversionsfunktionen konvertieren Unendlichkeit in inf oder infinity. Welche Variante verwendet wird, ist implementierungsabhängig.

Nicht-Zahlen werden in nan oder nan(char_sequence) konvertiert. Welche Variante verwendet wird, ist implementierungsabhängig.

Die Konversionen F, E, G, A geben stattdessen INF, INFINITY, NAN aus.

Der Konvertierungsspezifikator, der zum Drucken von char, unsigned char, signed char, short und unsigned short verwendet wird, erwartet die promovierten Typen der Standard-Argument-Promotions, aber vor dem Drucken seines Wertes wird er in char, unsigned char, signed char, short und unsigned short konvertiert. Es ist sicher, Werte dieser Typen zu übergeben, aufgrund der Promotion, die stattfindet, wenn eine variadische Funktion aufgerufen wird.

Die korrekten Konvertierungsspezifikationen für die festen Zeichentypen (int8_t, etc.) sind im Header <inttypes.h> definiert (obwohl PRIdMAX, PRIuMAX, etc. synonym mit %jd, %ju, etc. sind).

Der Speicher schreibende Konvertierungsspezifizierer %n ist ein häufiges Ziel von Sicherheitslücken, bei denen Formatzeichenketten von Benutzereingaben abhängen und wird von der grenzgeprüften printf_s-Funktionsfamilie nicht unterstützt(seit C11).

Nach der Ausführung jedes Konvertierungsspezifizierers gibt es einen Sequenzpunkt; dies ermöglicht es, mehrere %n-Ergebnisse in derselben Variablen zu speichern oder, als Grenzfall, einen durch ein früheres %n modifizierten String innerhalb desselben Aufrufs auszugeben.

Wenn eine Konversionsspezifikation ungültig ist, ist das Verhalten undefiniert.

[edit] Rückgabewert

1,2) Anzahl der an den Ausgabestream übertragenen Zeichen oder ein negativer Wert, wenn ein Ausgabefehler oder ein Codierungsfehler (für Zeichenketten- und Zeichenkonvertierungsspezifikationen) aufgetreten ist.
3) Anzahl der in buffer geschriebenen Zeichen (ohne das abschließende Nullzeichen) oder ein negativer Wert, wenn ein Codierungsfehler (für Zeichenketten- und Zeichenkonvertierungsspezifikationen) aufgetreten ist.
4) Anzahl der Zeichen (ohne das abschließende Nullzeichen), die in buffer geschrieben worden wären, wenn bufsz ignoriert worden wäre, oder ein negativer Wert, wenn ein Codierungsfehler (für Zeichenketten- und Zeichenkonvertierungsspezifikationen) aufgetreten ist.
5,6) Anzahl der an den Ausgabestream übertragenen Zeichen oder ein negativer Wert, wenn ein Ausgabefehler, ein Laufzeitfehler bei der Verletzung von Einschränkungen oder ein Codierungsfehler aufgetreten ist.
7) Anzahl der in buffer geschriebenen Zeichen, ohne das Nullzeichen (das immer geschrieben wird, solange buffer kein Nullzeiger ist und bufsz nicht null und nicht größer als RSIZE_MAX ist), oder null bei Laufzeitfehlern bei der Verletzung von Einschränkungen und ein negativer Wert bei Codierungsfehlern.
8) Anzahl der Zeichen ohne das abschließende Nullzeichen (das immer geschrieben wird, solange buffer kein Nullzeiger ist und bufsz nicht null und nicht größer als RSIZE_MAX ist), die in buffer geschrieben worden wären, wenn bufsz ignoriert worden wäre, oder ein negativer Wert, wenn ein Laufzeitfehler bei der Verletzung von Einschränkungen oder ein Codierungsfehler aufgetreten ist.

[edit] Hinweise

Der C-Standard und POSIX legen fest, dass das Verhalten von sprintf und seinen Varianten undefiniert ist, wenn sich ein Argument mit dem Zielpuffer überschneidet. Beispiel

sprintf(dst, "%s and %s", dst, t); // <- broken: undefined behavior

POSIX legt fest, dass errno bei Fehlern gesetzt wird. Es legt auch zusätzliche Konvertierungsspezifikationen fest, insbesondere die Unterstützung für Argumentreihenfolge (n$ unmittelbar nach % bezeichnet das n-te Argument).

Der Aufruf von snprintf mit null bufsz und einem Nullzeiger für buffer ist nützlich, um die erforderliche Puffergröße zur Aufnahme der Ausgabe zu ermitteln.

const char fmt[] = "sqrt(2) = %f";
int sz = snprintf(NULL, 0, fmt, sqrt(2));
char buf[sz + 1]; // note +1 for terminating null byte
snprintf(buf, sizeof buf, fmt, sqrt(2));

snprintf_s, genau wie snprintf, aber im Gegensatz zu sprintf_s, schneidet die Ausgabe ab, damit sie in bufsz - 1 passt.

[edit] Beispiel

#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
 
int main(void)
{
    const char* s = "Hello";
    printf("Strings:\n"); // same as puts("Strings");
    printf(" padding:\n");
    printf("\t[%10s]\n", s);
    printf("\t[%-10s]\n", s);
    printf("\t[%*s]\n", 10, s);
    printf(" truncating:\n");
    printf("\t%.4s\n", s);
    printf("\t%.*s\n", 3, s);
 
    printf("Characters:\t%c %%\n", 'A');
 
    printf("Integers:\n");
    printf("\tDecimal:\t%i %d %.6i %i %.0i %+i %i\n",
                         1, 2,   3, 0,   0,  4,-4);
    printf("\tHexadecimal:\t%x %x %X %#x\n", 5, 10, 10, 6);
    printf("\tOctal:\t\t%o %#o %#o\n", 10, 10, 4);
 
    printf("Floating-point:\n");
    printf("\tRounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3);
    printf("\tPadding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5);
    printf("\tScientific:\t%E %e\n", 1.5, 1.5);
    printf("\tHexadecimal:\t%a %A\n", 1.5, 1.5);
    printf("\tSpecial values:\t0/0=%g 1/0=%g\n", 0.0 / 0.0, 1.0 / 0.0);
 
    printf("Fixed-width types:\n");
    printf("\tLargest 32-bit value is %" PRIu32 " or %#" PRIx32 "\n",
                                     UINT32_MAX,     UINT32_MAX );
}

Mögliche Ausgabe

Strings:
 padding:
        [     Hello]
        [Hello     ]
        [     Hello]
 truncating:
        Hell
        Hel
Characters:     A %
Integers:
        Decimal:        1 2 000003 0  +4 -4
        Hexadecimal:    5 a A 0x6
        Octal:          12 012 04
Floating-point:
        Rounding:       1.500000 2 1.30000000000000004440892098500626
        Padding:        01.50 1.50  1.50
        Scientific:     1.500000E+00 1.500000e+00
        Hexadecimal:    0x1.8p+0 0X1.8P+0
        Special values: 0/0=-nan 1/0=inf
Fixed-width types:
        Largest 32-bit value is 4294967295 or 0xffffffff

[edit] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.21.6.1 Die fprintf-Funktion (S: TBD)
  • 7.21.6.3 Die printf-Funktion (S: TBD)
  • 7.21.6.5 Die snprintf-Funktion (S: TBD)
  • 7.21.6.6 Die sprintf-Funktion (S: TBD)
  • K.3.5.3.1 Die fprintf_s-Funktion (S: TBD)
  • K.3.5.3.3 Die printf_s-Funktion (S: TBD)
  • K.3.5.3.5 Die snprintf_s-Funktion (S: TBD)
  • K.3.5.3.6 Die sprintf_s-Funktion (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.21.6.1 Die fprintf-Funktion (S: 225-230)
  • 7.21.6.3 Die printf-Funktion (S: 236)
  • 7.21.6.5 Die snprintf-Funktion (S: 237)
  • 7.21.6.6 Die sprintf-Funktion (S: 237)
  • K.3.5.3.1 Die fprintf_s-Funktion (S: 430)
  • K.3.5.3.3 Die printf_s-Funktion (S: 432)
  • K.3.5.3.5 Die snprintf_s-Funktion (S: 432-433)
  • K.3.5.3.6 Die sprintf_s-Funktion (S: 433)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.21.6.1 Die fprintf-Funktion (S: 309-316)
  • 7.21.6.3 Die printf-Funktion (S: 324)
  • 7.21.6.5 Die snprintf-Funktion (S: 325)
  • 7.21.6.6 Die sprintf-Funktion (S: 325-326)
  • K.3.5.3.1 Die fprintf_s-Funktion (S: 591)
  • K.3.5.3.3 Die printf_s-Funktion (S: 593-594)
  • K.3.5.3.5 Die snprintf_s-Funktion (S: 594-595)
  • K.3.5.3.6 Die sprintf_s-Funktion (S: 595-596)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.19.6.1 Die fprintf-Funktion (S: 274-282)
  • 7.19.6.3 Die printf-Funktion (S: 290)
  • 7.19.6.5 Die snprintf-Funktion (S: 290-291)
  • 7.19.6.6 Die sprintf-Funktion (S: 291)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.9.6.1 Die fprintf-Funktion
  • 4.9.6.3 Die printf-Funktion
  • 4.9.6.5 Die sprintf-Funktion

[edit] Siehe auch

gibt formatierte Weitzeichenausgaben nach stdout, an einen Dateistream oder in einen Puffer aus
(Funktion) [bearbeiten]
gibt formatierte Ausgaben nach stdout, an einen Dateistream oder in einen Puffer aus
mit variabler Argumentenliste
(Funktion) [bearbeiten]
schreibt einen Zeichenstring in einen Dateistream
(Funktion) [bearbeiten]
liest formatierte Eingaben aus stdin, einem Dateistream oder einem Puffer
(Funktion) [bearbeiten]
C++ Dokumentation für printf, fprintf, sprintf, snprintf