Читать книгу C für Dummies - Dan Gookin - Страница 119
Weitere Tests mit Printfun
ОглавлениеDer wahre Test mit Printfun
beginnt erst, wir werden die Escape-Sequenz \\a
beziehungsweise \a
durch andere Sequenzen ersetzen. Fangen wir damit an, dass wir die Zeile mit dem printf
wie folgt ändern:
printf("Hier kommt das \\b Backspace:\b\b\b\b");
Also, speichern, kompilieren, starten.
Der Cursor sitzt nun auf dem a
von Backspace, wenn das Programm läuft. Das liegt daran, dass der Cursor nach links gesetzt wird, aber nichts löscht. Wir haben hier vier \b
, daher wird der Cursor auch vier Positionen nach links gesetzt (falls der Cursor nicht genau dort steht, haben Sie ein Leerzeichen zu viel oder nicht vier Backspaces eingegeben).
Mit dem \n
sind Sie ja vertraut, aber was macht \r
? Wie unterscheidet sich ein Wagenrücklauf von einem Zeilenvorschub? Ändern Sie die betreffende Zeile wieder und schauen Sie sich die Eingabe an:
printf("Hier kommt der \\r Wagenruecklauf: \r");
In der Ausgabe sehen Sie, dass der Cursor unter dem H in der Zeile blinkt. Der Wagenrücklauf versinnbildlicht den Wagenrücklauf einer Schreibmaschine: Man bewegt sich zurück zum Anfang der Zeile. Nur durch den Zeilenvorschub kommt man in die nächste Zeile. (Erinnern Sie sich noch an Schreibmaschinen?)
Das \t
-Zeichen steht für einen Tabulator, gleichbedeutend mit dem Drücken der -Taste. Damit kann man sehr gut Tabellen erstellen, da der Text an den gleichen Spalten ausgerichtet wird. Ändern Sie die Zeile wie folgt:
printf("Apfel\t\Birne\tEi\n");
Dann fügen Sie direkt danach noch die folgenden Zeilen ein:
printf("1\t2\t3\n");
printf("alpha\tbeta\tgamma\n");
In den printf
-Strings sind jetzt keinerlei Leerzeichen, die Wörter werden alle nur durch Tabs \t
getrennt. Achten Sie darauf, dass in jeder Zeile zwei Tabs und ein Newline \n
vorkommen. Noch ein Hinweis: Gerne schreibt man auch überflüssige Backspaces in die Zeilen, weil man sich leicht mit der Reihenfolge vertut. Wenn Sie fertig sind, starten Sie das Programm, hier die Beispielausgabe:
Apfel Birne Ei
1 2 3
alpha beta gamma
Obwohl die printf
-Anweisungen mit den Tabs \t
ein bisschen wirr aussehen, so ist die Ausgabe doch schön geordnet. Eine Tabelle – hey, nicht schlecht für einen Frischling. Weiter so.
Standardmäßig sind die Tabstopps alle acht Zeichen eingestellt, daher fügt ein \t so viele Leerzeichen in die Ausgabe ein, dass das nächste Zeichen auf dem nächsten Tabstopp liegt. Ich erwähne das, weil viele glauben, dass ein Tab einfach acht Leerzeichen in den String einfügt – das stimmt aber nicht.
Die Zeichen \f und \v erzeugen in der Kommandozeile von Windows nur Sonderzeichen, aber ein Seitenvorschub beziehungsweise Bildschirmlöschen oder ein vertikaler Tabulator werden nicht ausgeführt.
Leider besitzt C keinerlei Funktionen für Kommandos wie »Bildschirm löschen« oder »Schreibe mit einer anderen Farbe«. Je nach Betriebssystem muss man hier auf andere Funktionen zurückgreifen, dazu müssen Sie das Handbuch Ihres Compilers zurate ziehen.
Um die anderen Escape-Sequenzen kümmern wir uns im Moment nicht, Sie lernen später noch, wie diese funktionieren.