Show Menu
Cheatography

C - printf/scanf Cheat Sheet by

C printf/scanf syntax

genereller Aufbau

Parameter
Beschr­eibung
* NUR scanf
optional, Zuweisung zum korres­pon­die­renden Zeiger unterd­rücken
Flags NUR printf
optional, bestimmt über numerische Vorzei­chen, Dezima­lpu­nkte, link/r­ech­tsb­ünd­igkeit und anderes
Breite
optional, minimal auszug­ebende Zeiche­nzahl. Der Rest wird mit Leerze­ichen oder Nullen aufgef­üllt.
F/N NUR scanf
optional, Größe des Adress­-Pa­ram­eters
.Präzision
optional, Angabe, wie präzise die Ausgabe sein soll
F/N/hh­/h/­l/ll/L
optional, Angabe der Größe des Parameters
Typ
obliga­torisch, Angabe des Typs der auszug­ebenden Variablen
printf:
% [Flags] [Breite] [.Präz­ision] [F/N/...] Typ

scanf:
% [*] [Breite] [F|N][­hh|­h|l­|ll|L] Typ
KEINE Leerze­ichen! Sie dienen hier nur der Übersi­cht­lic­hkeit!

Unters­chiede der Präzision je nach Datentyp
Zeiche­nketten: maximal auszug­ebende Zeichen
ganze Zahlen: Minima­lzahl von Zeichen
Fließk­omm­azahlen: Maxima­lzahl der Nachko­mma­stellen

Besond­erh­eiten von scanf

Es dürfen nur Platzh­alter und Leerze­ichen verwendet werden
Anstatt %s kann auch %[Such­zei­chen] genutzt werden.
Beispiel:
%[abcd] erwartet nur Eingaben, die aus den Zeichen a, b, c, d bestehen. Bei allen anderen wird die Eingabe beendet.
Wird als erstes Suchze­ichen das Carret (^) verwendet, wird die Eingabe beendet, wenn eines der Suchze­ichen eingegeben wird.
Beispiel:
%[^abcd] erwartet nur Eingaben, die nicht aus den Zeichen a, b, c, d bestehen. Die Eingabe wird auch nicht bei weißen Leerze­ichen beendet.
Anstelle von Zeiche­nau­fzä­hlungen können auch Bereiche angegeben werden.
Beispiel:
% [01234­56789] ist äquivalent mit %[0-9]
Bei manchen Compilern kann bzw. muss bei der Format­angabe das s angehangen werden.
 

Flags

Flag
Effekt
-
linksb­ündige Ausgabe
+
numerische Ausgabe immer mit Vorzeichen
<Leerzeichen>
Positiven Zahlen wird ein Leerze­ichen voran gestellt
#
Altern­ative Darste­llung
Altern­ative Darste­llu­ngen:
o: Es wird eine 0 vorang­est­ellt.
x/X: es wird ein 0x bzw. 0X vorang­est­ellt.
e/E/f: Es wird ein Dezima­lpunkt ausgeg­eben, auch wenn es keine Nachko­mma­stellen gibt.
g/G: wie bei e/E, außerdem werden folgende Nullen nicht unterd­rückt.

# ist nicht erlaubt bei Typ d/i/u/­c/s/p
+ ist nicht erlaubt bei Typ c/s

Breite

Breite
Ausgabe
n
(n = Dezima­lzahl) - Es werden mind. n Zeichen ausgegeben und notfalls führende Leerze­ichen genutzt.
0n
(Dezim­alzahl mit vorang­est­ellter 0) - Es werden mind. n Zeichen ausgegeben und mit Nullen mit führenden Nullen aufgef­üllt.
*n
Breite variabel bestimmbar
Beispiel *n
printf­("%*­d\n­", Breite, Wert);
//Breite muss int sein!

Größen­angaben

Größen­angabe
Datentyp
hh3
char
h1
short
l
long
ll3
long long
L
long double
F4
Far (Zeiger)
N4
Near (Zeiger)
1: erst seit C89
2: erst seit C95
3: erst seit C99
4: Nur in 16-Bit Compilern
Besond­erh­eiten:
Bei cl ist der Datentyp wint_t2
Bei sl ist der Datentyp wchar_t* 3
 

Präzision

Präzision
Ausgabe
.0
Standa­rda­usgabe - keine Ausgabe von Dezima­lpunkt und Nachko­mma­stellen für Fließk­omm­azahlen
.n
n = Dezima­lzahl
.*
variable Präzision
Beispiel .*
printf­("%.f\n", Breite, Präzision, Wert);
//Breite und Präzision müssen int sein!

Unters­chiede je nach Datentyp:
gnaze Zahlen: Mindes­tanzahl von auszug­ebenden Ziffern
Fließk­omm­azahlen (e/E/f/F): Ausgabe von n Nachko­mma­stellen
Fließk­omm­azahlen (g/G/a/A): Ausgabe von n Ziffern
Zeiche­nke­tten: maximale Anzahl von auszug­ebenden Zeichen

Typ

Typ
Ausgabe
d / i
dezimaler Integer
u
vorzei­che­nloser dezimaler Integer
o
vorzei­che­nloser oktaler Integer
x / X
vorzei­che­nloser hexade­zimaler Integer
f / F
dezimale Fließk­omm­azahl
e / E
dezimale Fließk­omm­azahl in Expone­nte­nda­rst­ellung
g / G
wie e/E, aber in Kurzform
c
Zeichen
s
Zeiche­nkette bis zu einem Nullze­ichen oder dem Erreichen der Präzision
p
Zeiger­adresse
                               
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          C Reference Cheat Sheet
          C program Cheat Sheet

          More Cheat Sheets by TimSch

          C- Grundlagen zu Variablen Cheat Sheet
          C - Kontrollstrukturen Cheat Sheet