![]() Vorherige Seite |
![]() Eine Ebene hoch |
![]() Nächste Seite |
---|
Wie in Abschnitt 6.1 angekündigt hier für interessierte Leser der Quellcode der Funktionen GetInt und GetZeile:
#include <stdio.h> #include <string.h> #include "Eingabe.h" int GetInt(char *Text, int Min, int Max) /* Diese Funktion liest eine ganze Zahl vom Typ int ein. */ { int Zahl; /* einzulesende Zahl */ char Fehler; /* Fehlermarke */ do { Fehler = 0; /* kein Fehler */ printf("%s (%d-%d): ", Text, Min, Max); /* Fragetext ausg. */ rewind(stdin); /* Tastaturpuffer l�schen */ if(scanf("%d", &Zahl)!=1) { /* Zahl einlesen */ printf("Sie m�ssen eine Zahl eingeben!\n"); Fehler = 1; } else if(Zahl<Min) { /* wenn Zahl zu klein */ printf("Die Zahl ist zu klein!\n"); Fehler = 1; } else if(Zahl>Max) { /* wenn Zahl zu gro� */ printf("Die Zahl ist zu gro�!\n"); Fehler = 1; } } while(Fehler); return Zahl; } void GetZeile(char *Text, int MaxSize, char *Zeile) /* Diese Funktion lie�t eine Textzeile vom Benutzer ein. */ { char Fehler; /* Fehlermarke */ do { Fehler = 0; /* kein Fehler */ printf("%s: ", Text); /* Fragetext ausgeben */ rewind(stdin); /* Tastaturpuffer l�schen */ if(fgets(Zeile, MaxSize+1, stdin)==NULL) { /* Zeile einl. */ printf("Dies ist kein g�ltiger Text!\n"); /* Fehlerm. */ Fehler = 1; } } while(Fehler); /* wiederholen, bis kein Fehler */ /* Zeilenvorschub am Ende Entfernen */ if(Zeile[strlen(Zeile)-1]=='\n') Zeile[strlen(Zeile)-1] = 0; }