Eingabe automatisch mit Enter bestätigen?
-
Hi,
bin schon ein ganzes Stück weiter gekommen. Jetzt fehlt nur noch die Hauptfunktion meines Programms.Davor habe ich aber noch eine kurze Frage. Ich habe hier diese Funktion.
[cpp] //... cout << endl << endl << endl; cout << "Geben Sie 'z' ein um zum Anfang zu gelangen: "; cin >> auswahl; //Eingabe wird getestet und Fehler wird abgefangen if(auswahl == 'z') { system("cls"); start(); } else { system("cls"); cout << "------------------------" << endl; cout << "Achtung! Fehler bei der Eingabe!" << endl; cout << "Bitte geben Sie 'z' ein!" << endl; cout << "------------------------"; kontoUebersicht(); } //... [/cpp]
Nun muss man ja die Eingabe von 'z' noch mit Enter bestätigen. Gibt es eine Möglichkeit, die es mir ermöglicht einfach z einzugeben ohne das Enter?
Danke für eure Hilfe!
-
compilerunabhängig: nein.
Manche Compilerhersteller liefern eine <conio.h> mit, in welcher sich die Funktion getch( ) findet:
// Prototype: int get( void );
Sie liefert den ASCII-Code der zuletzt gedrückten Taste.
in deinem Falle also:
//... cout << "Geben Sie 'z' ein um zum Anfang zu gelangen: "; //Eingabe wird getestet und Fehler wird abgefangen if( getch( ) == 'z' ) { system("cls"); start(); } else { //...
Greetz, Swordfish
-
Dankeschön, funktionieren tut das schon, allerdings noch nicht richtig. Bei dieser Funktion zB: wird ja die wahl übergeben und in der anderen ausgewertet. Wie geh ich dann vor?
[cpp] //Funktion zum starten der Auswahl char start() { char wahl; cout << "-------------------" << endl; cout << "Mein Finanzplaner" << endl; cout << "-------------------" << endl; cout << endl; cout << "1.Mein Konto"<< endl; cout << "2.Umsaetze" << endl; cout << "3.Beenden" << endl; cout << endl << endl; cout << "Treffen sie Ihre Auswahl: "; cin >> wahl; startAuswahl(wahl); return 0; } [/cpp]
Hier wird die wahl dann ausgewertet
[cpp] //Funktion zum Ausgeben der Kontoinformationen void kontoUebersicht() { void startAuswahl(char wahl) { //Eingabe wird auf Ergebnis geprüft if((wahl != '1') && (wahl != '2') && (wahl != '3')) { cout << endl; system("cls"); cout << "----------------------------------------------------------------------" << endl; cout << "Achtung! Fehler bei der Eingabe!" << endl; cout << "Bitte geben Sie '1' (Mein Konto) / '2' (Umsaetze) oder '3' (Ende) ein!" << endl; cout << "----------------------------------------------------------------------" << endl; start(); } else { switch(wahl) { case '1': system("cls"); kontoUebersicht(); break; case '2': system("cls"); umsaetze(); break; case '3': system(0); break; } } } } [/cpp]
Danke!
-
sag' mal, warum definierst du startAuswahl() in kontoUebersicht()!!???
Was soll system( 0 ) bewirken??
Bei etlichen Fehleingaben hintereinander produzierst du eine schöne ewigrekursion:start() -> startAuswahl() -> start() -> startAuswahl() ...
Das macht man so nicht!!!!1111elf
Beispiel:
int main( ) { bool do_exit = false; do { cout << "-------------------" << endl; cout << "Mein Finanzplaner" << endl; cout << "-------------------" << endl << endl; cout << "1: Mein Konto"<< endl; cout << "2: Umsaetze" << endl; cout << "3: Beenden" << endl << endl << endl; cout << "Treffen sie Ihre Auswahl: "; switch( getch( ) ) { case '1': system( "cls" ); kontoUebersicht( ); break; case '2': system("cls"); umsaetze(); break; case '3': do_exit = true; break; default: system("cls"); cout << "----------------------------------------------------------------------" << endl; cout << "Achtung! Fehler bei der Eingabe!" << endl; cout << "Bitte geben Sie '1' (Mein Konto) / '2' (Umsaetze) oder '3' (Ende) ein!" << endl; cout << "----------------------------------------------------------------------" << endl; break; } } while( !do_exit ); }
Greetz, Swordfish