C für Dummies. Dan Gookin
Чтение книги онлайн.

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

Название: C für Dummies

Автор: Dan Gookin

Издательство: John Wiley & Sons Limited

Жанр: Программы

Серия:

isbn: 9783527833382

isbn:

СКАЧАТЬ noch was eintippt, könnte ich meinen Job auch erledigen.«

image

       Wenn Sie ein C-Programm schreiben, das Eingaben benötigt, müssen Sie einen Platz bereitstellen, um die Eingaben abzulegen. Für Texteingaben nimmt man eine Stringvariable, die mithilfe des Schlüsselworts char erstellt wird. (Schauen Sie in das Programm am Ende des Kapitels, wenn Sie ein Beispiel hierzu suchen.)

       Benutzt man in einem C-Programm Variablen, so werden diese vor der ersten Benutzung in das Programm geschrieben. Es sind reguläre Anweisungen in C und sie benötigen ein Semikolon am Ende.

       Zu Variablen erfahren Sie in Kapitel 4 mehr.

       scanf funktioniert wie printf, aber es benötigt eine Variable, um den Text abzulegen. Es reicht nicht aus, einfach zu sagen: »Lies mal die Tastatur«, man braucht einen Ort für die Ablage des Textes.

       Die Stringvariable ist ein Ort, an dem der eingegebene Text gespeichert wird. Das Schlüsselwort char teilt dem Compiler den Typ der Variablen mit und wie viel Speicherplatz benötigt wird.

       Die Formatierungsanweisungen von scanf sind identisch mit denen von printf. Im Normalfall benutzt man sie meistens zusammen mit printf, denn es gibt bessere Wege, die Tastatur abzufragen als mit scanf. Schauen Sie in Tabelle 3.2 im Abschnitt »Mehr Spaß mit printf« nach, wenn Sie nach einer Liste aller Formatierungsmöglichkeiten suchen.

       scanf im scharfen Einsatz

      Das folgende Programm Whoru.c haben Sie sicherlich schon gesehen, es wurde in Kapitel 2 vorgestellt. Es benutzt scanf, um Text von der Tastatur einzulesen, und printf, um ihn auszugeben. Ein schönes Beispiel für Eingabe und Ausgabe.

       #include <stdio.h> int main() { char me[21]; printf("Wie heissen Sie? "); scanf("%s", me); printf("Hallo %s, nett, Sie kennenzulernen!\n", me); return 0; }

      Listing 3.5: Name: Whoru.c

       Die Anweisung char me[21]; sagt dem C-Compiler, dass er Speicher für 20 eingegebene Zeichen und das Nullbyte bereitstellen muss. Die Stringvariable heißt me.

       Die scanf-Funktion liest die Tastatur und speichert den Text in der Variablen me.

       Das folgende printf gibt das Ergebnis aus. Achten Sie darauf, wie ähnlich das Format von scanf und printf aussieht:scanf("%s", me);scanf enthält in den Klammern "%s" und me.printf("Hallo %s, nett, Sie kennenzulernen!\n", me);printf enthält in den Klammern "%s" (zusammen mit anderem Text) und me.

       Kleine Änderungen an Whoru.c

      Um zu zeigen, wie ähnlich printf und scanf wirklich sind, nehmen Sie die folgende Änderung in Whoru.c vor, indem Sie die printf-Anweisung wie folgt modifizieren:

       printf("%s", me);

      Dadurch erhalten printf und scanf ein nahezu identisches Aussehen. Beide enthalten einen Formatstring mit der Zeichenfolge %s und beide benutzen die Stringvariable me als »Argument«.

      Speichern Sie das geänderte Programm, kompilieren und starten Sie es. Mit der Fehlerbehebung kennen Sie sich inzwischen gut aus.

      Die Ausgabe ist diesmal anders, weil das »Hallo …« nicht ausgegeben wird. Dennoch zeigt das Beispiel, wie ähnlich sich die beiden Funktionen sind und wie sie jeweils Eingabe und Ausgabe behandeln.

       Das Wunder von %s

      Bisher haben Sie printf und seine Formatierungsmöglichkeiten nur im Zusammenhang mit Strings kennengelernt, bei denen %s als Platzhalter steht. Aber %s kann mehrfach verwendet werden, nicht nur einmal. Und es kann mit mehreren Stringvariablen verwendet werden.

      Betrachten Sie das folgende Programm Color.c, das zwei Stringvariablen name und color benutzt. Es fragt nach Ihrem Namen und nach Ihrer Lieblingsfarbe. Das abschließende printf gibt beide Informationen aus.

       #include <stdio.h> int main() { char name[21]; char color[21]; printf("Wie heissen Sie? "); scanf("%s", name); printf("Was ist Ihre Lieblingsfarbe? "); scanf("%s", color); printf("Die Lieblingsfarbe von %s ist %s \n", name, color); return 0; }

      Listing 3.6: Name: Color.c

      Geben Sie das Programm ein und speichern Sie es als Color.c, kompilieren und starten Sie es. Eine beliebte Fehlerquelle ist auch das Vergessen von Kommas, wie hier in printf. Eine mögliche Ausgabe sieht so aus:

       Wie heissen Sie? Marcus Was ist Ihre Lieblingsfarbe? Rot Die Lieblingsfarbe von Marcus ist Rot.

      

Offensichtlich ist % ein spezielles Zeichen, genauso wie das Anführungszeichen " und der Backslash \. Um in einem String ein Prozentzeichen zu schreiben, müssen Sie es doppelt angeben:

       printf("Ein Sparbuch bringt nur lausige 0.1%% Zinsen im Jahr\n");

      Diese Anweisung gibt den folgenden Text aus:

       Ein Sparbuch bringt nur lausige 0.1% Zinsen im Jahr

       Zeit für Experimente

      Was ist wichtiger: die Reihenfolge der %s-Dingerchen oder die Reihenfolge der Variablen – der Argumente – in der printf-Funktion? Geben Sie auf? Also ich werde es Ihnen nicht verraten, das müssen Sie schon selbst herausfinden.

СКАЧАТЬ