C für Dummies. Dan Gookin

Чтение книги онлайн.

Читать онлайн книгу C für Dummies - Dan Gookin страница 39

C für Dummies - Dan Gookin

Скачать книгу

Lautsprecher piept – lahm, oder? Bach oder Beethoven ist das nicht. Drücken Sie die
-Taste, um das Programm zu beenden.

      Wenn das Programm läuft, wartet getchar auf einen Tastendruck von Ihnen. Das erlaubt es Ihnen, dass Sie sich in aller Ruhe die Ausgaben ansehen können, bevor das Programm endet. getchar folgt ein leeres Pärchen runde Klammern ().

       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");

      Das \t-Zeichen steht für einen Tabulator, gleichbedeutend mit dem Drücken der image-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.

       Wieder mal die Komplexität des printf-Formats

      printf kann man auch benutzen, um den Inhalt von Variablen darzustellen, was Sie bereits mit Stringvariablen und dem Platzhalter %s gesehen haben (die lustige Welt der Variablen lernen Sie im nächsten Kapitel kennen). Dazu verwendet printf folgendes Format:

      printf("format_string"[, var[,…]]);

       printf("Yep, ich glaube auch, dass %s ein Idiot ist!\n", idiot);

      Hier ist der Formatstring der Text Yep, ich glaube auch, dass ____ ein Idiot ist!. Das %s-Konvertierungszeichen ist ein Platzhalter, eine Leerstelle, die mit einem String gefüllt werden muss (ich nenne das Platzhalter, aber die Kings der C-Programmierung reden von Konvertierungszeichen). Die Variable dahinter, idiot, ist eine Stringvariable, deren Inhalt eingefügt wird.

       Sie können eine beliebige Anzahl von Konvertierungszeichen in einem Formatstring unterbringen. Aber es muss für jedes Konvertierungszeichen eine zugehörige Variable vorhanden sein; drei %s würden auch drei Stringvariablen erfordern.

       Sie können sowohl Strings als auch Zahlen angeben, wenn Sie die richtigen Konvertierungszeichen verwenden. Dazu kommen wir gleich.

       Schauen Sie sich die Abbildung in dem Kasten » Geheime Information über die Arbeitsweise von Justify.c« an, wenn Sie wissen wollen, wie das Konvertierungszeichen in einem printf zusammen mit einer Stringvariablen funktioniert.

       Die Konvertierungszeichen von printf

Скачать книгу

Konvertierungszeichen Stelle das Argument (Variableninhalt) dar als
%c einzelnes Zeichen
%d Dezimalzahl (int) mit Vorzeichen
%e Fließkommazahl mit Vorzeichen in Exponentialschreibweise
%f Fließkommazahl mit Vorzeichen (float)