Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 3 Zeichensätze
  gp 3.1 Basic-Zeichensatz
  gp 3.2 Ausführungszeichensatz (Steuerzeichen)


Galileo Computing - Zum Seitenanfang

3.2 Ausführungszeichensatz (Steuerzeichentoptop

Beim Ausführungszeichensatz kommen zu den oben aufgeführten Zeichen noch weitere hinzu, die in diesem Abschnitt beschrieben werden.

Zuvor soll ein weiteres Programm analysiert werden. Dazu wird genauso vorgegangen, wie schon in Kapitel 2: das Listing in einem Texteditor abtippen, abspeichern und anschließend mit dem Compiler übersetzen.

Hier das Programmbeispiel zur Demonstration:

/* steuerzeichen.c */
#include <stdio.h>
int main(void) {
   printf("Ein akkustisches Signal mit : (\\a)\a");
   printf("\nEin Backspace mit : (\\b) | \bx\n");
   printf("Ein Zeilenvorschub mit : (\\t) |\tx");
   printf("\n\tC\n\ti\n\ts\n\tt\n\ttoll\n");
   printf("\t   u\n\t   n\n\t   d\n");
   printf("\t   macht Spass\n");
   return 0;
}

Nach dem Übersetzen und Starten des Programms sieht die Ausgabe folgendermaßen aus:

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 3.1   Steuerzeichen im Einsatz

Hier können Sie die Auswirkungen von Steuerzeichen, auch Escape-Sequenzen genannt, sehen. Diese Zeichen sind nicht druckbare Zeichen in so genannten char-Konstanten. Und wie der Name (Steuerzeichen) besagt und das Programm soeben gezeigt hat, können Sie damit die Ausgabe auf dem Bildschirm beeinflussen.

Steuerzeichen beginnen immer mit einem Backslash (\) und einer folgenden Konstante. Der Compiler behandelt diese Steuerzeichen wie ein einziges Zeichen. Mögliche Steuerzeichen und ihre Bedeutung können aus der folgenden Tabelle entnommen werden:


Tabelle 3.1   Steuerzeichen (Escape-Sequenzen) in Zeichenkonstanten

Steuerzeichen Bedeutung
\a BEL (bell) – akustisches Warnsignal
\b BS (backspace) – setzt Cursor um eine Position nach links
\f FF (formfeed) – ein Seitenvorschub wird ausgelöst. Wird hauptsächlich bei Programmen verwendet, mit denen Sie etwas ausdrucken können.
\n NL (newline) – Cursor geht zum Anfang der nächsten Zeile
\r CR (carriage return) – Cursor springt zum Anfang der aktuellen Zeile
\t HT (horizontal tab) – Zeilenvorschub zur nächsten horizontalen Tabulatorposition (meistens acht Leerzeichen weiter)
\v VT (vertical tab) – Cursor springt zur nächsten vertikalen Tabulatorposition
\" " wird ausgegeben
\’ ' wird ausgegeben
\? ? wird ausgegeben
\\ \ wird ausgegeben
\0 ist die Endmarkierung eines Strings
\nnn Ausgabe eines Oktalwerts (z.B. \033 = ESCAPE-Zeichen)
\xhh Ausgabe eines Hexdezimalwerts

Hierzu noch ein Listing, wie Sie außer mit dem Newline-Zeichen (\n) noch einen Zeilenvorschub auslösen könnten:

/* newline.c */
#include <stdio.h>
int main(void) {
   printf("Darstellung von Newline \\n \n");
   printf("Mögliche Ausführung von Newline\n");
   printf("Mit hexadezimaler Angabe : \\xa \xa");
   printf("Mit oktaler Wertangabe   : \\012 \012");
   printf("Mit dezimaler Angabe     : 10%c",10);
   printf("Hallo\0Ich bin nicht mehr lesbar\n");
   return 0;
}

Dass auch ein Zeilenvorschub bei \xa , \012 und 10 vorgenommen wurde, liegt daran, dass alle diese Zeichen intern den Wert 10 darstellen. Und wenn Sie sich die ASCII-Code-Tabelle (im Anhang) ansehen, können Sie erkennen, dass alle diese Werte in derselben Zeile stehen und das newline-Zeichen darstellen. Dass bei der letzten printf()-Anweisung der Text nur bis »Hallo« ausgegeben wird, liegt am Steuerzeichen '\0', womit eine Stringkonstante terminiert (abgeschlossen) wird. Wird das Beispiel mit einer höheren Warnstufe übersetzt (bspw. mit dem Flag -Wall beim GCC), wird der Compiler über diese Zeile sowieso meckern, weil es einfach keinen Sinn macht, hier das Zeichen '\0' einzubetten. Dazu später mehr.

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de