C Konstanten, Ausgaben, cast


Page updated: 3. April 2005


Inhalt: Konstanten - Ausgabefunktion printf() - Formatierung - Länderspezifisch - cast

Demoprogramme ausgabe1.c und ausgabe2.c


Item Konstanten. TOP TOP

Schreibweise von numerischen und alphanumerischen Konstanten:

Konstanten Schreibweise in C
Ganze Zahl Dezimal:
4711, -4711, 0
Oktal mit vorangestellter 0 (Null):
047
Hexadezimal mit vorangestelltem 0x:
0x47
Reelle Zahl
Festkomma
Gleitkomma
Dezimalpunkt (statt Dezimalkomma)
47.11, -0.815, 0.0
471.1E-1

(E bedeutet "mal 10 hoch")
Logische Daten
Falsch
Wahr

0
1, -1, 4711, -4711

(alle ganzen Zahlen ungleich 0)
Einzelzeichen 'X'
Zeichenkette "Hallo!"

Begrenzer für Einzelzeichen ist Apostroph und für Zeichenketten Anführungszeichen.

Item Augabefunktion printf(). TOP TOP

Um die Ausgabefunktion printf() zu nutzen, müssen Sie die Headerdatei stdio.h über die Praeprozessoranweisung #include einbinden, damit sie zur Konsolenausgabe dem Compiler bekannt ist.
Bei fehlerfreier Ausführung liefert printf() die Anzahl der ausgegebenen Bytes zurück. Im Fehlerfall gibt printf() Die EOF Marke zurück (engl. End Of File, spezielle ASCII Sequenz zur Kennzeichnung des Dateiendes). Zusätzlich zum optionalen auszugebenden Text im Formatstring spezifizieren in ihm Formatbezeichner, wie aufgeführte Ausdrücke auf dem Bildschirm ausgegeben werden. Steht ein Formatbezeichner an einer bestimmten Stelle im Formatstring, wird dort der Wert des Ausdrucks eingesetzt.
Die folgenden Steuerzeichen, die immer mit dem Backslash (rückwärtiger Schrägstrich) eingeleitet werden, können ebenfalls ausgegeben werden (zum Beispiel im Formatstring):

Steuerzeichen
Ausgabe von:
\% 
Prozentzeichen
\\ Backslash
\" Anführungszeichen
\a Lautsprecherton (Alarm)
\n Linefeed (Newline)
\r Zeilenrücklauf (Return)
\t Tabulator (Tab)
\<nnn> nnn = dreistellige ANSI Nummer eines Zeichens in oktal Code.

Item Formatierung der Ausgabe. TOP TOP

Zur Formatierung der Ausgabe werden im Formatstring Formatbezeichner verwendet. Ein Formatbezeichner wird immer mit dem Prozentzeichen % eingeleitet und endet mit der Typenangabe. Die Angabe von Prozentzeichen und Typ sind unbedingt nötig, während Flag, Breite und Präzision optional sind.

<Formatbezeichner> ::=
%
[<Flag>]
[<Breite>]
[.<Präzision>]
<Typ>

Flagzeichen:

- Linksbündig.

+ Vorzeichen bei Zahlen erzwingen, Plus bzw. Minus.

Leerzeichen: Leerzeichen statt + Vorzeichen bei Zahlen.

0 Bei Zahlenausgaben führende Nullen ausgeben.

Breite n:

n ist eine positive ganze Zahl für die Anzahl aller Ausgabezeichen.

Präzision .n:

.n Nachkommastellen, n ist größer gleich 0.

Typzeichen:

d Integer Dez.
i Integer Dez.
o Integer Oktal.
u Integer Dez unsigned.
x Integer Hex (a-f).
X Integer Hex (A-F).
f Festkomma  ±ddd.ddd
e Gleitkomma ±d.dddde±ddd
E Gleitkomma ±d.ddddE±ddd
g Gleitkomma e oder f, was kürzer.
G Gleitkomma E oder f, was kürzer.
c Zeichen.
s String.

Die Umwandlung von ganzen Zahlen in Dezimal, Hexadezimal oder Oktal zur Ausgabe erfolgt über das Typzeichen im Formatbezeichner. Die Umwandlung zur Ausgabe eines Zeichens als Zahl und umgekehrt erfolgt über das Typzeichen im Formatbezeichner, kann aber auch über den cast Operator beeinflußt werden.

Item Landesspezifische Ausgabe. TOP TOP

Um landesspezifische Standards bei Ausgaben (Dezimalkomma statt Dezimalpunkt) zu setzen, müssen Sie die Headerdatei locale.h über die Praeprozessoranweisung #include einbinden und im Programm die setlocale() Funktion benutzen:

setlocale(LC_NUMERIC, "German");

Um den C Sprachstandard wieder zu setzen, rufen Sie die setlocale() Funktion wie folgt auf:

setlocale(LC_NUMERIC, "C");

Item cast TOP TOP

Ein cast Operator ist nicht nur bei Ausgaben gebräuchlich, sondern kann generell benutzt werden. Der Operator weist dem Ausdruck einen anderen Datentyp zu. Diese Zuweisung gilt nur in der aktuellen Anweisung, in dem der cast Operator benutzt wird. Der cast Operator ist auch in C++ und Java vorhanden.
Als Datentyp können zum Beispiel char (wandelt Ausdruck in ein Zeichen) und int (wandelt Ausdruck in eine ganze Zahl, keine Rundung) verwendet werden.

Dr. J. Kubiak j.kubiak@gmx.net