Textformatierung

Alle Anzeigeformatierungen verwenden die gleiche Syntax wie die C Funktion sprint, hier finden Sie eine kurze Übersicht über die Möglichkeiten dieser Formatangabe:

Platzhaltertypen

Integers
Sonderzeichen Bedeutung Beispiele
 %d Integer (32 Bit, mit Vorzeichen) 31; -31
 %i Integer (32 Bit, mit Vorzeichen) 31; -31
 %u Integer (32 Bit, positiv, ohne Vorzeichen) 31
 %x integer in hexadezimaler Schreibweise (hex, kein Standard!), kleine Buchstaben 1f
 %X integer in hexadezimaler Schreibweise (hex, kein Standard!) 1F
 %o Integer in oktaler Schreibweise 37
 %p Pointer
Fließkommazahlen
Sonderzeichen Bedeutung Beispiele
 %f Fließkommazahl 47.11
 %e Fließkommazahl in Exponentialdarstellung (kleines e) 4.711e+1
 %E Fließkommazahl in Exponentialdarstellung (großes E) 4.711E+1
Buchstaben und Strings
Sonderzeichen Bedeutung Beispiele
 %c Wert als <acronym title="American Standard Code for Information Interchange" style="margin: 0px; cursor: help; border-bottom-width: 1px; border-bottom-style: dotted; ">ASCII</acronym>-Zeichen (character) a
 %s Adresse als Zeichenkette (String) Hallo proggen.org
Sonstiges
Sonderzeichen Bedeutung Beispiele
 %n Bisher gedruckte Zeichen auf einen Pointer (auf ein signed int) schreiben
 %% Druckt ein (nur ein!) Prozentzeichen  %

Formatierung

Diese Platzhalter können auch nach folgendem Muster formatiert werden:

%[Flags][Feldbreite][.][Genauigkeit][Eingabetyp]Platzhaltertyp

Bis auf den Platzhaltertyp sind alle Angaben optional.

Flags

Zeichen Bedeutung Beispiele
- linksbündig in der Feldbreite „4711 “
+ Erzwingt ein Vorzeichen auch bei positiven Zahlen “ +4711“
-Leerzeichen- Die Feldbreite wird mit Leerzeichen vor der Zahl aufgefüllt “ 4711“
# Erzwingt eine Beschreibung der Zahlenbasis (0 für Oktal, 0x/0X für Hexadezimal ) 
bei Fließkommazahlen (E, e) folgt ein Punkt, auch wenn keine Nachkommastellen gedruckt werden, bei G und g werden die nachfolgenden Nullen nicht entfernt
„0123“, „0xbadc0de“, „4711.“
0 Die Feldbreite wird mit Nullen vor der Zahl aufgefüllt „00004711“

Feldbreite

Wird eine Zahl angegeben, so wird für diesen Platzhalter mindestens diese Breite reserviert. Passt der einzufügende Inhalt nicht in den Platzhalter, so wird mehr Platz verwendet - es wird nicht abgeschnitten. Ist der einzufügende Inhalt kürzer, so wird der Platz entsprechend der Flags aufgefüllt (per Voreinstellung mit Leerzeichen).

Wird ein * angegeben, so folgt ein zusätzliches Integer-Argument in der Parameterliste, der die Feldbreite angibt und zwar vor dem Argument, das ausgegeben wird.

Genauigkeit

Die Genauigkeit gibt an, wie ab wann eine Ausgabe gekürzt wird.

Dies ist abhängig von Platzhaltertyp.

Platzhaltertyp Beschreibung Beispiel Eingabe Ausgabe
Integer Gibt die minimale Zahl zu schreibender Ziffern an, fehlende Ziffern werden vorangestellte Nullen aufgefüllt. Längere Integerzahlen werden nicht gekürzt. Wird 0 angegeben, so wird der Wert 0 nicht gedruckt.  %.10d 10 „0000000010“
f Anzahl der zu druckenden Ziffern nach dem Dezimalpunkt  %.3f 10.1234567 „10.123“
e, E Anzahl der zu druckenden Ziffern nach dem Dezimalpunkt  %.3e 10.1234567 „1.012e+01“
g, G Anzahl der zu druckenden Ziffern  %.5g 10.1234567 „10.123“
s Anzahl der zu druckenden Zeichen  %.5s „Hallo proggen.org“ „Hallo“
s Zusätzliches Argument, der dieses Argument beschreibt  %.*s 5, „Hallo proggen.org“ „Hallo“