while schleife stoppt nicht...

Hallo
ich habe eine while schleife geschrieben und verstehe nicht, wieso sie nicht stoppt.
Die Schleife ist folgende:
Code:
	int ende=0;
	while (ende!=1)
	{
		system("cls");
		cin>>ergebniss;
		wuerfel==(ergebniss[0]*10+ergebniss[1]);
		switch(wuerfel)
		{
		case 2: { a2+=1;
				break; }
		case 3: { a3+=1;
				break; }
		case 4: { a4+=1;
				break; }
		case 5: { a5+=1;
				break; }
		case 6: { a6+=1;
				break; }
		case 7: { a7+=1;
				break; }
		case 8: { a8+=1;
				break; }
		case 9: { a9+=1;
				break; }
		case 10: { a10+=1;
				 break; }
		case 11: { a11+=1;
				 break; }
		case 12: { a12+=1;
				 break; }
		}
		switch(ergebniss[2])
		{
		case 0: { nicht_schiff+=1;
				break; }
		case 1: { schiff+=1;
				break; }
		}
		if(ergebniss[0]==0 && ergebniss[1]==0 && ergebniss[2]==2)
		{
			ende=1;
		}
	}
eigentlich sollte sie doch bei der Eingabe 002 stoppen, oder?
Danke schon mal für eure Hilfe
Gruß
bastionmancher
 
1. Du hasst den datentyp von ergebnis nicht in dem Ausschnitt, daher schwer zu sagen als was Du die Eingaben da speicherst. Ich vermute mal es ist ein char array oder ein cstring. Schwer zu sagen.

2. Du prüfst auf die Inhalt der Zeichenkette. Darin stehen die eingegebenen Zeichen im ASCII-Format. in ASCII hat die Zahl 0 den Wert 48, 1 hat 49, 2 hat 50 usw... die müsstest also auf 48, 48, 50 prüfen oder auf '0', '0', '2',
 
tut mir leid, dass ich den typ vergessen habe anzugeben. Ist nur ein Codeausschnitt und ich das total vergessen. Hier also noch einmal:

Code:
	char ergebniss[3];
	int wuerfel;
	int schiff=0;
	int nicht_schiff=0;
	int anzahl=0;
	int a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12=0;
	int ende=0;
	while (ende!=1)
	{
		system("cls");
		cin>>ergebniss;
		wuerfel==(ergebniss[0]*10+ergebniss[1]);
		switch(wuerfel)
		{
		case 2: { a2+=1;
				break; }
		case 3: { a3+=1;
				break; }
		case 4: { a4+=1;
				break; }
		case 5: { a5+=1;
				break; }
		case 6: { a6+=1;
				break; }
		case 7: { a7+=1;
				break; }
		case 8: { a8+=1;
				break; }
		case 9: { a9+=1;
				break; }
		case 10: { a10+=1;
				 break; }
		case 11: { a11+=1;
				 break; }
		case 12: { a12+=1;
				 break; }
		}
		switch(ergebniss[2])
		{
		case 0: { nicht_schiff+=1;
				break; }
		case 1: { schiff+=1;
				break; }
		}
		if(ergebniss[0]==0 && ergebniss[1]==0 && ergebniss[2]==2)
		{
			ende=1;
		}
	}

Ich hoffe diesmal sind alle typen angegeben. Habe ich denn die if Bedingung falsch gemacht?
Gruß
bastionmancher
 
Zurück