C-Programmierung

Ausgabe mit printf()

Ein- und Ausgabe | | Eingabe mit scanf

Die Ausgabe von Zeichenketten auf der Konsole erfolgt mit der Funktion printf():

#include <stdio.h>

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

Der Format-String entspricht der Zeichenkette, die ausgegeben wird. In der Zeichenkette dĂĽrfen sogenannte Umwandlungen vorkommen. Sie sind Platzhalter fĂĽr zusätzliche Parameter. Umwandlungen beginnen mit einem Prozentzeichen ‘%’. Nach dem Prozentzeichen wird die Art der Umwandlung des Parameters genauer bestimmt.

Der RĂĽckgabewert der Funktion printf() ist die Anzahl der ausgegebenen Zeichen.

Die Umwandlungen im Format-string haben die vorgeschriebene Form:

%FWGLU

Dabei haben die Zeichen FWGLU die folgende Bedeutung:

ZeichenBezeichnungBedeutungmögliche Werte
FFormatierunsgzeichenFormatierungsoptionen der Ausgabe-, +, Leerzeichen, 0
WWeiteMindestzahl der auszugebenden Zeichen (aufgefĂĽllt von links mit Leerzeichen)n *
GGenauigkeitGenauigkeit bzw. Breite der Ausgabe.n .*
LLängenangabeLänge des umzuwandelnden Argumentshh, h, l, L, ll
UUmwandlungszeichenArt der Umwandlungd,i,u o x,X f,g c,s

Das Umwandlungszeichen ist obligatorisch, die anderen Formatzeichen können optional benutzt werden, solange die Reihenfolge eingehalten wird.

Formatierungszeichen F:

  • - : linksbĂĽndig
  • + : Ausgabe des Vorzeichens ‘+’ oder ‘-‘
  • 0 : AuffĂĽllen der Weite mit fĂĽhrenden Nullen

Weite W:

  • n : Angabe der Breite als Ganzzahl
  • * : Angabe der Breite als zusätzlicher ganzzahliger Parameter

Genauigkeit G:

  • .n : Angabe der Genauigkeit als Ganzzahl
  • .* : Angabe der Genauigkeit als zusätzlicher ganzzahliger Parameter

Die Auswirkung der Genauigkeit hängt vom Umwandlungszeichen ab:

  • d,i,u, o,x,X : Mindestzahl von auszugebenden Zeichen
  • f,F : Zahl der Auszugebenden Nachkommastellen
  • g,G : maximale Zahl der auszugebenden Stellen
  • s : maximale Zahl der auszugebenden Zeichen

Längenangabe L (Ausschnitt):

  • h : zum Umwandlungszeichen passendes Argument ist vom Typ short int
  • hh : zum Umwandlungszeichen passendes Argument ist vom Typ char
  • l : zum Umwandlungszeichen passendes Argument ist vom Typ long int
  • ll : zum Umwandlungszeichen passendes Argument ist vom Typ long long int
  • L : zum Umwandlungszeichen passendes Argument ist vom Typ long double

Umwandlungszeichen U (Ausschnitt):

  • d,i : Wert des passenden Arguments wird als vorzeichenbehaftete ganze Dezimalzahl ausgegeben
  • u : Wert des passenden Arguments wird als vorzeichenlose ganze Dezimalzahl ausgegeben
  • o : Wert des passenden Arguments wird als vorzeichenlose ganze Oktalzahl ausgegeben
  • x,X : Wert des passenden Arguments wird als vorzeichenlose ganze Hexadezimalzahl ausgegeben (X upper-case hex-digits)
  • f,F : Wert des passenden Arguments wird als Fliesskommazahl mit 6 Nachkommastellen (double) ausgegeben (F upper-case exponent)
  • e,E : Wert des passenden Arguments wird als Fliesskommazahl in Exponentendarstellung ausgegeben (E upper-case exponent)
  • g,G : Wert des passenden Arguments wird als Fliesskommazahl mit maximal 6 wertigen Stellen ausgegeben (ganze Zahlen ohne Dezimalpunkt)
  • c : Wert des passenden Arguments wird als ASCII Code interpretiert und als Zeichen ausgegeben
  • s : Wert des passenden Arguments wird als Zeiger auf eine Zeichenkette interpretiert und als Zeichenkette ausgegeben
  • n : Wert des passenden Arguments wird als Zeiger auf eine Variable interpretiert und die aktuelle Spalte der Ausgabe darin abgespeichert

Beispiele:

printf("int=%d octal=%o hex=%X",
       100, 255, 65535);

printf("double=%10.3f value=%g\n", 666.6, 2.0);

printf("char=%c string=%-100s\n", '0', "string");

Fallgrube: Weniger Argumente als %-Angaben fĂĽhren zu undefiniertem Verhalten.

Tipp: Lange Zeichenketten lassen sich mehrzeilig schreiben.

printf("strings can be"
       "concatenated\n");


Ein- und Ausgabe | | Eingabe mit scanf

Options: