C für Dummies. Dan Gookin
Чтение книги онлайн.
Читать онлайн книгу C für Dummies - Dan Gookin страница 38
![C für Dummies - Dan Gookin C für Dummies - Dan Gookin](/cover_pre922574.jpg)
printf benötigt den Backslash \ – eine Escape-Sequenz –, um bestimmte Zeichen darstellen zu können (eine Erklärung dieses Verhaltens finden Sie am Anfang dieses Kapitels).
printf kann den Inhalt von Variablen ausgeben, indem das Platzhalterzeichen % verwendet wird.
Das alte »Text mit printf ausgeben«
Hauptzweck von printf
ist das Ausgeben von Texten auf dem Bildschirm, mit dem folgenden einfachen Format:
printf("
text
");
Der text
wird von Anführungszeichen umgeben, diese wiederum von runden Klammern, gefolgt von einem Semikolon, weil es sich um eine Anweisung handelt.
Sonderzeichen, wie das Anführungszeichen, Tabulatoren, Backspace und Enter (eine neue Zeile) können in den dargestellten Text eingefügt werden. Diese Zeichen benötigen Escape-Sequenzen, wie sie noch beschrieben werden.
printf kann zwei oder auch mehr Zeilen darstellen, wenn man die Escape-Sequenz \n entsprechend oft in den Text einfügt.
Um ein Anführungszeichen im Text darzustellen, verwenden Sie \".
printf
-Ausgaben (oder auch in andere Ausgaben, die Sie noch kennenlernen werden) einbauen wollen, sollten Sie dafür die Escape-Sequenzen aus Tabelle 3.1 einsetzen. Das mit den deutschen Sonderzeichen ist eine dumme Sache, weil der ASCII-Code eigentlich so was gar nicht kennt. Wenn Sie nun zum Beispiel in einer Entwicklungsumgebung unter Windows den Quellcode schreiben, haben diese Sonderzeichen andere Codes als in der Kommandozeile. Da die meisten von Ihnen wohl mit Konsolenanwendungen beginnen werden, sind in Tabelle 3.1 daher nur diese Escape-Sequenzen aufgelistet.
printf("Gleich gibt's \x08erger\n");
erzeugt die Bildschirmausgabe:
Gleich gibt's Ärger
Aus diesem Grund sind auch alle Programmbeispiele ohne Umlaute und das Sonderzeichen ß geschrieben – haben Sie das schon bemerkt?
Die Escape-Sequenzen von printf
Tabelle 3.1 zeigt eine Anzahl von Escape-Sequenzen. Die meisten kennen Sie schon durch die Benutzung, andere sind sehr speziell und werden in späteren Kapiteln behandelt – oder auch nicht, je nachdem, wie ich mit dem Stoff durchkomme.
Sequenz | Bedeutung |
---|---|
\b | Backspace (der Cursor wird ein Zeichen nach links gebracht) |
\f | Blatt auswerfen (beim Drucker), auf dem Bildschirm wird je nach Konfiguration/Betriebssystem der Bildschirm gelöscht oder einfach nur ein seltsames Zeichen ausgegeben |
\n |
Neue Zeile, wirkt wie Drücken der |
\r | Wagenrücklauf, der Cursor wird wieder an den Zeilenanfang gesetzt |
\t | Tabulator ansteuern |
\v | Vertikaler Tabulator (setzt den Cursor in eine neue Zeile, je nach Konfiguration/Betriebssystem wird auch einfach nur ein seltsames Zeichen ausgegeben) |
\\ | Das Backslash-Zeichen \ |
\' | Der Apostroph ' |
\" | Das Anführungszeichen " |
\? | Das Fragezeichen ? |
\0 | Das »Null«-Byte (das ist eine Null hier) |
\nnn | Ein Zeichenwert als Oktalwert (zur Basis 8) |
\xnnn | Ein Zeichenwert als Hexadezimalzahl (zur Basis 16) |
\Xnnn | wie kleines x \xnnn |
\x084 | kleines »ä« (nur in der Kommandozeile) |
\x094 | kleines »ö« (nur in der Kommandozeile) |
\x081 | kleines »ü« (nur in der Kommandozeile) |
\x08e | großes »Ä« (nur in der Kommandozeile) |
\x099 | großes »Ö« (nur in der Kommandozeile) |
\x09a | großes »Ü« (nur in der Kommandozeile) |
\x0e1 | scharfes »ß« (nur in der Kommandozeile) |
Tabelle 3.1: Escape-Sequenzen von printf
Das Deluxe-Testprogramm für Escape-Sequenzen
Damit Sie sehen können, wie einige der Sequenzen arbeiten, erzeugen Sie das neue Programm Printfun.c
. Sie werden immer wieder nur die Zeile mit dem printf
verändern, um die unterschiedlichen Effekte sehen zu können.
/*
printf Escape-Sequenz Demoprogramm
*/
#include <stdio.h>
int main()
{
printf("Hier ist die \\a-Sequenz: \a");
getchar();
return 0;
}
Listing 3.12: Name: Printfun.c
Geben Sie das Programm in Ihrem Texteditor ein und speichern Sie es als Printfun.c
. Kompilieren und starten Sie es. Der Zweck dieses Programms besteht darin, dass Sie »sehen«, wie die Escape-Sequenz \a
wirkt. Hier eine Beispielausgabe:
Hier ist die \a-Sequenz:>>grausames BIEP!-Geräusch<<