Show Menu
Cheatography

C - printf/scanf Cheat Sheet by

C printf/scanf syntax

genereller Aufbau

Para­meter
Besc­hre­ibung
* NUR scanf
opti­onal, Zuweisung zum korres­pon­die­renden Zeiger unterd­rücken
Flags NUR printf
opti­onal, bestimmt über numerische Vorzei­chen, Dezima­lpu­nkte, link/r­ech­tsb­ünd­igkeit und anderes
Breite
opti­onal, minimal auszug­ebende Zeiche­nzahl. Der Rest wird mit Leerze­ichen oder Nullen aufgef­üllt.
F/N NUR scanf
opti­onal, Größe des Adress­-Pa­ram­eters
.Präzision
opti­onal, Angabe, wie präzise die Ausgabe sein soll
F/N/hh­/h/­l/ll/L
opti­onal, Angabe der Größe des Parameters
Typ
obli­gat­ori­sch, 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­hke­it!

Unte­rsc­hiede der Präzision je nach Datentyp
Zeich­enk­etten: maximal auszug­ebende Zeichen
ganze Zahlen: Minima­lzahl von Zeichen
Fließ­kom­maz­ahlen: 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.
Beis­piel:
%[^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
Alte­rnative 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
Ausg­abe
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
print­f("%­*d­\n", Breite, Wert); //Breite muss int sein!

Größen­angaben

Größ­ena­ngabe
Date­ntyp
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
Beso­nde­rhe­iten:
Bei cl ist der Datentyp wint_t2
Bei sl ist der Datentyp wchar_t* 3
 

Präzision

Präzision
Ausg­abe
.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 .*
print­f("%­.­f\n­", Breite, Präzision, Wert); //Breite und Präzision müssen int sein!

Unte­rsc­hiede je nach Datent­yp:
gnaze Zahlen: Mindes­tanzahl von auszug­ebenden Ziffern
Flie­ßko­mma­zahlen (e/E/f­/F): Ausgabe von n Nachko­mma­stellen
Flie­ßko­mma­zahlen (g/G/a­/A): Ausgabe von n Ziffern
Zeic­hen­ket­ten: maximale Anzahl von auszug­ebenden Zeichen

Typ

Typ
Ausg­abe
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
                               

Help Us Go Positive!

We offset our carbon usage with Ecologi. Click the link below to help us!

We offset our carbon footprint via Ecologi
 

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- Funktionen Cheat Sheet
          C Reference Cheat Sheet

          More Cheat Sheets by TimSch

          C- Grundlagen zu Variablen Cheat Sheet
          Listen Cheat Sheet