Fehlerhafte Eingabe Sequenz
Verfasst: Di Feb 18, 2020 2:38 pm
Hallo zusammen,
ich versuche gerade eine Eingabesequenz zu programmieren, die bei fehlerhafter Eingabe die Eingabe wiederholen soll. Bei der ersten Eingabe funktioniert noch alles. Das Problem tritt bei den weiteren Schleifendurchläufen auf. Anbei habe ich meinen Code und meinen Terminal Auszug. Ich verstehe einfach nicht wo der Fehler, daher bitte ich um eure Hilfe.
Danke!
Terminal Auszug:
ich versuche gerade eine Eingabesequenz zu programmieren, die bei fehlerhafter Eingabe die Eingabe wiederholen soll. Bei der ersten Eingabe funktioniert noch alles. Das Problem tritt bei den weiteren Schleifendurchläufen auf. Anbei habe ich meinen Code und meinen Terminal Auszug. Ich verstehe einfach nicht wo der Fehler, daher bitte ich um eure Hilfe.
Danke!
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h> // toupper()
// Definition der verwendeten Konstanten
#define MAX_SPIELFELD 26 // Maximale Zeilen und Spaltenzahl
#define MIN_SPIELFELD 10 // Minimale Zeilen und Spaltenzahl
// Hauptprogramm
int main(void){
int Spalte=0;
char Zeile=0, Aktion=0;
// Eingabe
while(1){
printf("\nSpielzug (mit 'A A 0' beenden):");
scanf("%c %c %d",&Aktion,&Zeile,&Spalte);
Aktion = toupper(Aktion);
Zeile = toupper(Zeile);
if((Aktion == 'A') && (Zeile == 'A') && (Spalte == 0)){
printf("\nBeende Spiel!\n");
return 0;
}
else if((Aktion != 'M') && (Aktion != 'A')){
printf("\nFalsche gewählte Aktion!\n");
continue;
}
else if(Zeile <65 || Zeile > 90 || Spalte <= 0 || Spalte > MAX_SPIELFELD){
printf("\nSpielzug ausserhalb definiertem Spielfeld!\n");
continue;
}
else{
printf("\nKorrekter Spielzug!\n");
continue;
}
}// End while
return 0;
}// End main()
Code: Alles auswählen
Spielzug (mit 'A A 0' beenden):a a 1
Korrekter Spielzug!
Spielzug (mit 'A A 0' beenden):a a 1
Falsche gewählte Aktion!
Spielzug (mit 'A A 0' beenden):a a 1
Spielzug ausserhalb definiertem Spielfeld!
Spielzug (mit 'A A 0' beenden):
Korrekter Spielzug!
Spielzug (mit 'A A 0' beenden):a a 1
Falsche gewählte Aktion!
Spielzug (mit 'A A 0' beenden):a a 1
Spielzug ausserhalb definiertem Spielfeld!
Spielzug (mit 'A A 0' beenden):
Korrekter Spielzug!
Spielzug (mit 'A A 0' beenden):