Nur bestimmte Eingabe zulassen
-
Hello World
Habe erst grad angefangen ein Konsolenspiel zu basteln, und schon hab ich ne Frage:
Wie kann ich nur bestimmte Eingaben zulassen bei der Menuauswahl?
Und wie mach ichs, dass es ohne Enter drücken weiter geht?
Hier mein Code: (bitte nicht lachen)void App::showMenu() { cout << menuTitle << endl << endl << "1 - " << menu1 << endl << "2 - " << menu2 << endl << "3 - " << menu3 << endl << "4 - " << menu4 << endl << endl; int menuSelection = selectMenu( 4 ); switch( menuSelection ) { //... } } int App::selectMenu( int max ) { int selection; cout << "Please make your selection (1 - " << max << "): "; cin >> selection; return selection; }
-
Hallo,
unter welchem BS arbeitest du?
-
WinXP.
Aber ich hab mal gelesen System() ist nicht so geschickt, von wegen Portabilität. Also wenns ne Lösung mit Standardmitteln gäb wärs ideal.
Hatte schon ne while( selection < max ) Schlaufe, aber die hängte sich auf
-
Mit Standardmitteln geht es nicht. Mit system() geht es auch nicht.
Manche Compiler bringen eine getch() Funktion mit.
-
Ansonsten bietet die WinAPI sicherlich Möglichkeiten.
-
Ok es geht, aber:
VC8.0 schrieb:
warning C4996: 'getch' was declared deprecated
c:\programme\microsoft visual studio 8\vc\include\conio.h(145) : see declaration of 'getch'
Message: 'The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.'Gibts das auch in C++?
Habs nur im Header <conio.h> gefunden, und der ist doch C oder?
-
Lies doch bitte die Meldung.
-
Sorry.. *anstirnklatsch*
-
Danke!!
Habs jetzt geschafft:void App::showMenu() { cout << menuTitle << endl << endl << "1 - " << menu1 << endl << "2 - " << menu2 << endl << "3 - " << menu3 << endl << "4 - " << menu4 << endl << endl; int menuSelection = 0; while( menuSelection < ( 1 + 48 ) || menuSelection > ( menumax + 48 ) ) { menuSelection = selectMenu( menuMax ); cout << menuSelection; cout << endl; } switch( menuSelection ) { //... } } int App::selectMenu( int max ) { cout << "Please make your selection (1 - " << max << "): "; return _getch(); }
Ist das so ok?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.