C für Dummies. Dan Gookin. Читать онлайн. Newlib. NEWLIB.NET

Автор: Dan Gookin
Издательство: John Wiley & Sons Limited
Серия:
Жанр произведения: Программы
Год издания: 0
isbn: 9783527833382
Скачать книгу
Sie können! Falls es sich fehlerfrei kompilieren ließe – falls –, würden Sie folgende Ausgabe sehen:

       Name eines Idioten: Karl Klammer Yep, ich denke auch, dass %s ein Idiot ist.

      Tja, wer ist dieser %s eigentlich?

      Aber zum Glück wird Ihr Compiler wahrscheinlich aufgesprungen sein und hat Ihnen einen Fehler an den Kopf geworfen, der besagt, dass puts nur ein Argument hat und kein weiteres mehr verkraftet. Genauer, dass das idiot in puts zu viel ist. puts ist nicht nur einfacher gestrickt als printf, das %s funktioniert nicht; es kann auch mit angehängten Variablen nichts anfangen.

      Wann nimmt man puts und wann printf?

      Nehmen Sie puts, wenn Sie einfach eine Zeile mit Text ausgeben wollen.

      Nehmen Sie puts, wenn Sie den Inhalt einer Stringvariablen in einer eigenen Zeile ausgeben wollen.

      Verwenden Sie printf, wenn Sie den Inhalt einer Stringvariablen in einen anderen String einbetten wollen und das Ergebnis ausgegeben werden soll.

      Verwenden Sie printf, wenn Sie mit mehr als einer Variablen gleichzeitig arbeiten wollen.

      Nehmen Sie printf, wenn Sie der zusätzliche Zeilenwechsel \n am Ende der Ausgabe stört, zum Beispiel dann, wenn Sie nach einer Eingabe fragen.

      Nehmen Sie printf, wenn Sie spezielle Formatierungen der Ausgabe brauchen.

      Ändern Sie das Programm nun, wie Sie es hier sehen, kompilieren Sie es – es funktioniert nun – und starten Sie es.

       #include <stdio.h> int main() { char idiot[20]; puts("Name eines Idioten:"); fgets(idiot, 20, stdin); puts("Yep, ich denke auch, dass"); puts(idiot); puts("ein Idiot ist.\n"); return 0; }

      Listing 3.11: Name: Insult2.c

      Die Ausgabe sieht ein wenig seltsam aus, ein bisschen wie einer dieser Kettenbriefe. Aber das Programm funktioniert wie beabsichtigt:

       Name eines Idioten: Karl Klammer Yep, ich denke auch, dass Karl Klammer ein Idiot ist

       Mehr Spaß mit printf

      Dieses Kapitel hat damit begonnen, Ihnen zu zeigen, wie Sie die printf-Funktion in Ihren Programmen einsetzen können. Dieser Abschnitt liefert einige Informationen über die Arbeitsweise dieser mächtigen Funktion sowie einen Ausblick auf einige noch kommende Dinge.

      Die folgenden drei Tricks sollten Ihnen bereits geläufig sein:

       printf gibt den Text aus, den Sie in Anführungszeichen als Argument übergeben.

       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 \".

      

Wenn Sie Umlaute (also ä, ö, ü, Ä, Ö, Ü) sowie das Sonderzeichen ß in die 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

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
-Taste
\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 '
\"

e-mail: [email protected]