switch case anweisung
-
Hi,
ich versuche gerade ein kleines Menü mittels switch case zu realisieren. Unter einem Menüpunkt gebe ich Zahlen ein, diese werden dann in einem Array gespeichert, soweit so gut. Jetzt möchte ich gerne, dass ich den Vorgang der Zahlen eingabe abbrechen kann und nur die bis dahin eingegebenen Zahlen in das Array gespeichert werden. Leider scheitere ich an der Terminierung der Zahleneingabe.
Hier mal mein Code:
int main() { char menu; int zahlen[6]; do { cout << "Bitte i oder I zum Befüllen des Arrays eingeben:" << endl; cout << "Bitte s oder S zum anzeigen der belegten Felder wählen" << endl; cout << "Bitte o oder O zum Anzeigen aller Belegten Felder wählen:" << endl; cout << "(Q)uit" << endl; cout << "\nEingabe:" << " "; cin >> menu; switch (menu) { case 'i': case 'I': int anzahl; int wert; cout << "Eingabe für Wert:"; cin >> wert; if (wert == 'z'){ break; } else for (anzahl = 0; anzahl < 5; anzahl++) { cout << "Eingabe für Wert:"; cin >> wert; zahlen[anzahl]= wert; } break; case 'o': case 'O': int position; for (position = 0; position < 7; position++) { cout << position << " " << zahlen[position] << endl; } cout << "Anzahl der belegten Felder:" << " " << anzahl << endl; break; case 'z': break; default: cout << "Keine Gültige Eingabe!"; break; } getchar(); cout << ('\n'); } while (menu != 'q' && menu != 'Q'); return 0; }
kann mir da evtl. jemand helfen?
Danke schon mal
Gruß
tobmes
-
des problems lösung erschliesst sich ganz einfach wenn du statt einem array auf dem stack einen std::vector nutzt und dann die methode push_back aufrufst, so hat der speicher immer die grösse der anzahl eingegebener daten. dann kannst du z.b. versuchen eine zahl einzulesen, wenn dies gut geht, pushst du sie hinten auf den vector, ansonsten wird die schleife abgebrochen.
-
Hi,
danke für deine Antwort, doch leider muss ich das mit arrays machen.
-
Unter Container: Bestimmete Anzahl an Vektorfeldern zusammen addieren sind verschiedene Möglichkeiten dafür angegeben, z.B. Anzahl vorher eingeben, '0' als Abbruchkriterium, Strg+Z als Abbruch, ...