![]() 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;
}