namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:printf

printf()

#include <cstdio>

int printf (const char *format, ...) 

Formatierte Ausgabe nach stdout.

Parameter

format Formatzeichenkette
weitere Argumente je nach Platzhalter

Die Formatzeichenkette der printf()-Familie kann neben gewöhnlichen Zeichen Platzhalter für andere Werte besitzen. Nach einem %-Zeichen folgen optional

  • ein - für linksbündige Ausgabe, ein + (immer mit Vorzeichen), ein Leerzeichen (vor positiver Zahl), ein # für "alternative Darstellung", (bei Oktal- und Hexadezimalausgabe mit Anzeige der Basis 0 bzw. 0x) oder eine 0 (zum Auffüllen mit führenden Nullen),
  • eine Ausgabefeldbreite als Ganzzahl oder, falls ein * da steht, aus dem nächsten noch nicht verarbeiteten Argument der variablen Argumentliste,
  • nach einem . eine Präzisionsangabe für die Anzahl von Nachkommastellen gebrochener Zahlen bzw. für die minimale Stellenzahl bei Ganzzahlen –die Angabe erfolgt als Ganzzahl oder bei * aus dem nächsten Argument der variablen Argumentliste–,
  • ein Längen-Modifizierer wie
    • hh bei Zeichen für Zahl-Ausgabe,
    • h bei short int,
    • l long oder
    • L bei long double,

Der Platzhalter wird zwingend abgeschlossen durch einen Konversionsbuchstaben:

d oder i dezimal integer
o, u, x, X oktal, vorzeichenlos dezimal, hexadezimal mit Klein-/Großbuchstaben
f, F double in der Form ddd.ddd
e, E double in Zehnerpotenz-Schreibweise
g, G double in einer kürzeren der beiden oberen Formen
c ein Zeichen
s C-Zeichenkette
p Zeiger als Hexadezimalzahl
n Anzahl bisher geschriebener Zeichen (in int*-Argument abzulegen)
% Prozentzeichen wird geschrieben (weiteres kein Argument erforderlich)

Den Platzhaltern wird ein folgendes Argument mit dem passenden Typ zugeordnet.

Ergebnis

Rückgabewert: Anzahl der ausgegebenen Zeichen, bei Ausgabefehler einen negativen Wert.

Passen irgendein Platzhalter und der Argumenttyp nicht, ist das Verhalten undefiniert.

Siehe auch

Beispiel

printf.cpp
#include <cstdio>
using namespace std;
 
int main()
{
  char *str = "Hallo";
 
  printf("%s%c %s Nr. %d\n",   // Platzhalter
     //   /  |  \      |
        str,',',"Welt",1);     // einzusetzende Werte
 
  printf("Gebrochene Zahl im \"Waehrungsformat\" : %+10.2f\n", 
                                                  123.4567);
 
  printf("Amerika ist %s,\nDeutschland ist %s.\n\t---[%s]\n",
             "ein gefaehrliches Land", "AOK", "Martin Walser");
}
kennen/lib/printf.txt · Zuletzt geändert: 2019-11-20 16:00 von rrichter