PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] switch-anweisung



Daywa1k3r
16.03.2010, 18:31
jo moin hab hier nen code, meiner meinung nach richtig?, aber warum gibt der mir i.was mit bewertung aus?

hier der code:


#include <iostream>


using namespace std;

int main (void)
{

int i1;
cout << "Zahl";
cin >> i1;

switch(i1) {
case 1:
cout "Zahl 1" << endl;
break;
case 2:
cout "Zahl 2" << endl;
break;
case 3:
cout "Zahl 3" << endl;
break;
default:
cout << "sonstige";

}


cout << endl;







return(0);

}

sp1nny
16.03.2010, 18:37
Du hast "<<" bei Cout vergessen:



#include <iostream>


using namespace std;

int main (void)
{

int i1;
cout << "Zahl";
cin >> i1;

switch(i1) {
case 1:
cout << "Zahl 1" << endl;
break;
case 2:
cout << "Zahl 2" << endl;
break;
case 3:
cout << "Zahl 3" << endl;
break;
default:
cout << "sonstige";

}


cout << endl;


return(0);

}

mfg

Daywa1k3r
16.03.2010, 18:45
ja der gibt mir trotzdem was ganz eigenartiges aus :/

in der konsolen ausgabe gibt er das wort "bewertung" aus und dann verlang er nach EINER eingabe. danach wird das fenster geschlossen

sp1nny
16.03.2010, 18:53
Dass das Fenster geschlossen wird, liegt dadran dass das Programm bei "return 0;" zuende ist und die Konsole deshalb schließt. Entweder du öffnest das Programm in der Konsole oder du zwingst es noch offen zu bleiben. Da gibt es 2 Möglichkeiten - zum einen mit "cin.ignore(); cin.get();" oder mit "system("Pause");" jedoch ist die zweite Möglichkeit nur auf Windows möglich und du musst noch includieren - "#include <windows.h>. So. Weiter. Er fragt nur einmal eine Zahl ab, da dies im Programmablauf auch nur einmal gefordert wird bevor er bei "return 0;" ankommt, man könnte z.B. eine While-Schleife benutzen um solange Zahlen abzufragen, bis er Beispielsweise eine "999" eingibt.

So hier:



#include <iostream>
#include <windows.h>

using namespace std;

int main (void){

do{

int i1;
bool Done = false;

cout << "Bitte eine Zahl eingeben!"<<endl;
cin >> i1;

switch(i1) {
case 1:
cout << "Zahl 1" << endl;
break;
case 2:
cout << "Zahl 2" << endl;
break;
case 3:
cout << "Zahl 3" << endl;
break;
case 999:
cout << "Beende Schleife!"<<endl;
Done = true;
break;
default:
cout << "Sonstige";
}

}while(!Done);

system("PAUSE");

return(0);
}

Daywa1k3r
16.03.2010, 19:17
jo danke so funzt es :)

sp1nny
16.03.2010, 19:23
Kein Problem, noch etwas nebenbei: Es ist keine Überprüfung vorhanden ob der Anwender tatsächlich eine Zahl eingibt. Wenn er einen Buchstaben eingeben würde, gäbe es Fehler. Deshalb sollte man dies bei Gelegenheit noch tun, man kann sich schliesslich nicht darauf verlassen, dass nur Zahlen eingegeben werden. :)

MfG