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

Sichere Dateneingaben

Оглавление

Was jetzt? Müssen wir deshalb aufhören, die Sprache C zu benutzen? Nein, Sie müssen einfach nur damit aufhören, Funktionen wie scanf zu verwenden. Es gibt eine sichere Alternative dazu: den großen Bruder fgets. Da ist auch das f wieder. Schauen Sie sich zunächst das Programm InsultSicher.c an.

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

Listing 3.8: Name: InsultSicher.c

Es fällt sofort auf, dass fgets als zweiten Parameter die Zahl 20 verwendet. Die kennen wir schon – es ist die Maximallänge von unserem String idiot mitsamt diesem famosen Nullbyte. Damit verhindert fgets, dass mehr Zeichen eingelesen werden können, als Platz vorhanden ist, und Speicherüberläufe wie bei scanf sind damit ausgeschlossen.

C für Dummies

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