Hauptprogrammproblem

Status
Nicht offen für weitere Antworten.
B

Bernd1983

Gast
hallo, ich habe mir ein Programm Musikladen erstellt und möchte die Klassen jetzt in einem Hauptprogramm testen.


Code:
 char eingabe;
	do{
		IO.writeLn();
		IO.write("Hauptmenue: ");
		IO.writeLn("[L]P Liste ausgeben, [G]esamteinnahmen anzeigen,");
		IO.write("[E]inkaufsliste oder [B]eenden: ");
		eingabe=IO.read();
		
		switch(eingabe){
		
		case 'l':
			eins.AusgabeArtikel();break;
			
		case 'g':
			eins.AusgabeGesamteinnahmen();
			
		default: break;
		}
		
		
	}while(eingabe!='b');


wenn ich jetzt zb 'l' eingebe bekomme ich:

Hauptmenue: [L]P Liste ausgeben, [G]esamteinnahmen anzeigen,
[E]inkaufsliste oder eenden: l

0. Sing when you are winning, Robbie Williams, 2002, 24.9 Eur
1. Simply the best, Tina Turner, 1995, 19.8 Eur

Hauptmenue: [L]P Liste ausgeben, [G]esamteinnahmen anzeigen,
[E]inkaufsliste oder eenden:
Hauptmenue: [L]P Liste ausgeben, [G]esamteinnahmen anzeigen,
[E]inkaufsliste oder eenden:


Warum wird nun das Haupmenue zweimal ausgegeben? wahrscheinlich ganz simpel aber ich komm nicht drauf

mfg

bernd
 

Leroy42

Top Contributor
Das liegt daran, daß du eben nicht nur ein I eingegeben hast sondern auch
ein Carriage Return (Newline). Dieses Zeichen taucht in deiner Switch-Anweisung
nicht auf, so daß die Programmausführung, nach Ausgabe deines Menüs, gleich
noch einmal die while-Schleife durchläuft.
 

Leroy42

Top Contributor
Einfach in indem du, nachdem du das Zeichen eingelesen hast, noch alles liest
und verwirfst was noch im Eingabebuffer steht.

Zum Einlesen benutzt du eine Hilfsklasse IO, die ich nicht kenne. :shock:

Schau mal in der API-Doku zu dieser Klasse nach wie das bei der funktioniert.
 
B

bygones

Gast
Leroy42 hat gesagt.:
Zum Einlesen benutzt du eine Hilfsklasse IO, die ich nicht kenne. :shock:
die kommt aus irgendeinem obskuren Java Buch und wird hier öfters verwendet :) dennoch kennt sie keiner und mögen tut sie erst recht niemand ;)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben