Studentin2009
Grünschnabel
Hallo!
Ich habe folgendes Problem:
Ich möchte kontrollieren, ob die Eingabe die gemacht wurde wirklich
- eine Zahl
- >0
- <1.000.000
ist.
Dazu habe ich folgenden Text geschrieben.
//***STARTANZEIGE***
void startanzeige(void)
{
printf("\n\n\n *** WILLKOMMEN BEI U-BOOT-BOMBER ***");
printf("\n\n\n\n\n\n Wie viele Sekunden m\x94 \bchten Sie spielen?\n ");
fflush(stdin); //Tastaturspeicher löschen
do
{ //1=Zahl 0=keine Zahl
scanOK=0;
scanOK=scanf("%f",&zeitvorgabe);
if(zeitvorgabe<0||zeitvorgabe>1000000||!scanOK)
{
printf("\n\n Wie viele Sekunden m\x94 \bchten Sie spielen?\n ");
scanf("%f",&zeitvorgabe);
fflush(stdin); //Tastaturspeicher löschen
}
}
while(zeitvorgabe<0||zeitvorgabe>1000000||!scanOK);
printf("\n\n Anleitung: \n Um Bomben zu werfen dr\x81 \bcken Sie bitte die Taste 'b'!");
printf("\n\n Ziel: \n Alle U-Boote m\x81 \bssen so oft wie m\x94 \bglich getroffen werden!");
printf("\n\n\n INFO:\n Folgende Dienstgrade sind erreichbar: \n Matrose - Gefreiter - Unteroffizier - Offizier - Admiral");
Leider funktioniert es so nur teilweise.
Prinzipiell erkennt das Programm, ob etwas richtiges eingegeben wurde. Nur wenn beim ersten mal z.B. 1000000000000 eingegeben wurde fragt er richtiger weise direkt nocheinmal nach. Wenn hier dann aber etwas eingegeben wird wird die erste Eingabe gar nicht erst erkannt, sondern man muss es nochmal eingeben.
Bestimmt ist es nur ein kleiner Fehler, aber...kann mir jemand von Euch dabei helfen?
Ich muss mein Projekt leider schon am Montag vorstellen. (
VG Linda
Ich habe folgendes Problem:
Ich möchte kontrollieren, ob die Eingabe die gemacht wurde wirklich
- eine Zahl
- >0
- <1.000.000
ist.
Dazu habe ich folgenden Text geschrieben.
//***STARTANZEIGE***
void startanzeige(void)
{
printf("\n\n\n *** WILLKOMMEN BEI U-BOOT-BOMBER ***");
printf("\n\n\n\n\n\n Wie viele Sekunden m\x94 \bchten Sie spielen?\n ");
fflush(stdin); //Tastaturspeicher löschen
do
{ //1=Zahl 0=keine Zahl
scanOK=0;
scanOK=scanf("%f",&zeitvorgabe);
if(zeitvorgabe<0||zeitvorgabe>1000000||!scanOK)
{
printf("\n\n Wie viele Sekunden m\x94 \bchten Sie spielen?\n ");
scanf("%f",&zeitvorgabe);
fflush(stdin); //Tastaturspeicher löschen
}
}
while(zeitvorgabe<0||zeitvorgabe>1000000||!scanOK);
printf("\n\n Anleitung: \n Um Bomben zu werfen dr\x81 \bcken Sie bitte die Taste 'b'!");
printf("\n\n Ziel: \n Alle U-Boote m\x81 \bssen so oft wie m\x94 \bglich getroffen werden!");
printf("\n\n\n INFO:\n Folgende Dienstgrade sind erreichbar: \n Matrose - Gefreiter - Unteroffizier - Offizier - Admiral");
Leider funktioniert es so nur teilweise.
Prinzipiell erkennt das Programm, ob etwas richtiges eingegeben wurde. Nur wenn beim ersten mal z.B. 1000000000000 eingegeben wurde fragt er richtiger weise direkt nocheinmal nach. Wenn hier dann aber etwas eingegeben wird wird die erste Eingabe gar nicht erst erkannt, sondern man muss es nochmal eingeben.
Bestimmt ist es nur ein kleiner Fehler, aber...kann mir jemand von Euch dabei helfen?
Ich muss mein Projekt leider schon am Montag vorstellen. (
VG Linda
Zuletzt bearbeitet: