BobKiller007 Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Hallöchen alle miteinander, ich habe mal aus Spaß ein kleines Programm geschrieben, welches zwei Wave-Dateien abspielen kann. Ich will es so einrichten, dass der Benutzer des Programms ganz am Ende nochmal die Chance hat, das Programm neuzustarten, dies klappt aber aus irgendeinem Grund nicht. Könntet ihr mir bitte helfen? Danke im voraus! LG Boby P.S. Hier der Code: #include <windows.h> #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int welches; int nochmal; cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; switch(welches) { cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; case 1: PlaySound("dark.wav", NULL, SND_FILENAME | SND_ASYNC); cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; break; case 2: PlaySound("large01.wav", NULL, SND_FILENAME | SND_ASYNC); cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; break; default: cout << "Ungueltige Eingabe!\n"; cout << "Programm neustarten um es erneut zu versuchen ? [3=ja, 4=nein]\n"; cin >> nochmal; break; } cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; while (nochmal==3) cin.get(); return 0; } Zitieren
flashpixx Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Überdenke mal Deinen Ablauf. Du möchtest das Programm so oft ausführen so lange nicht 3 gedrückt wird. Schau Dir Deine While Schleife an und überlege Dir was sie nur ausführt Phil Zitieren
kronsi Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Hi dein Programm Code müsste so aussehen int main(){ int welches; int nochmal; do{ cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; switch(welches){ case 1: PlaySound("dark.wav", NULL, SND_FILENAME | SND_ASYNC); break; case 2: PlaySound("large01.wav", NULL, SND_FILENAME | SND_ASYNC); break; default: cout << "Ungueltige Eingabe!\n"; break; } cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; } while (nochmal==3); return 0; } du hattest das while schon ganz richtig gesetzt wolltest aber eine fuß gesteuerte schleife ausführen, dazu musst du aber noch ein do setzten. außerdem habe ich den überflüssigen code rausgelöscht Zitieren
kronsi Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Überdenke mal Deinen Ablauf. Du möchtest das Programm so oft ausführen so lange nicht 3 gedrückt wird. Schau Dir Deine While Schleife an und überlege Dir was sie nur ausführt Phil entschuldige aber das Programm soll wenn 3 gedrückt wird noch einmal ausgeführt werden while(nocheinmal==3) Zitieren
BobKiller007 Geschrieben 16. Januar 2009 Autor Geschrieben 16. Januar 2009 du hattest das while schon ganz richtig gesetzt wolltest aber eine fuß gesteuerte schleife ausführen, dazu musst du aber noch ein do setzten. außerdem habe ich den überflüssigen code rausgelöscht Hy, also habe ich im Grunde nur das "do" vergessen? Omg, is mir garnicht aufgefallen, obwohl, ich den Code mir einige Male durchgelesen habe. Danke dir! Zitieren
kronsi Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 na ja du solltest den code trotzdem noch ein wenig überdenken da manche dopplungen aufgetaucht sind... aber im wesentlichen fehlte nur das do das ist richtig... man sieht am anfang nicht immer alles, aber mit der zeit gerne immer wieder Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.