Читать книгу C für Dummies - Dan Gookin - Страница 107

Die Funktion fgets

Оглавление

Die Funktion fgets liest über die Tastatur eingegebene Zeichen ein und speichert diese in einer Stringvariablen, die bereits zuvor über das Schlüsselwort char erzeugt worden sein muss. Die Funktion hört mit dem Lesen von Zeichen auf, sobald die -Taste gedrückt wird. Es werden nur maximal length Zeichen in den String gelesen. War der String kürzer als length und wurde die -Taste gedrückt, so ist das Zeichen \n ebenfalls im String enthalten.

Der String wird von einem Nullbyte beendet.

fgets(var, length, stdin);

fgets folgt ein Paar runde Klammern, dahinter ein Semikolon, dazwischen der Name einer Stringvariablen, die Anzahl der Zeichen, die Sie lesen wollen – und eine Variable mit dem Namen stdin.

stdin heißt Standard Input und bezeichnet den Zeichenstrom, der von der Tastatur in das Programm fließt (sehr poetisch).

Die fgets-Funktion ist eine vollständige Anweisung in C. Sie endet daher auch immer mit einem Semikolon.

Verwenden Sie für die Arbeit mit Zeichenketten immer nur Funktionen, bei denen die Länge des Strings angegeben werden kann, denn so kann die Funktion prüfen, dass nicht über das Ziel hinausgeschrieben wird. Im Klartext: Wir verwenden scanf ab jetzt nie mehr. Ich habe es erwähnt, weil Sie es in vielen Lehrbüchern (noch) finden.

Der dritte Parameter von fgets heißt stdin und bezeichnet die Standardeingabe (standard input). Damit ist die Tastatur gemeint. Bei scanf kann man sich diese Angabe sparen, weil diese Funktionen immer automatisch stdin benutzen. Lassen Sie sich davon zunächst nicht weiter beeindrucken.

Es gibt da noch eine kleine Unschönheit mit fgets: Diese Funktion liest nämlich netterweise gleich noch die -Taste mit. Am Ende eines mit fgets gelesenen Strings findet man daher im Regelfall noch ein \n. Das ist ein wichtiger Unterschied zu scanf. Damit müssen wir zunächst einfach leben, ich komme in Kapitel 10 darauf zurück.

C für Dummies

Подняться наверх