Falscher Code (warscheinlich einfach für euch ^^)



  • Könnte mir jemand sagen was an diesem Code falsch ist? Es wird nichts ausgegeben. 😞

    cout << "Text: " << endl;
    cin >> Nummer;
    cout << endl;
    cout << "Entschluesselt: " << endl;
    
    for (i=0; i<=merk; i++){
    	if(Nummer[i] == 1 || Nummer[i] == 2|| Nummer[i] == 3|| Nummer[i] == 4|| Text[i] == 5|| Nummer[i] == 6|| Nummer[i] == 7|| Nummer[i] == 8|| Nummer[i] == 9|| Nummer[i] == 10|| Nummer[i] == 11|| Nummer[i] == 12|| Nummer[i] == 13|| Nummer[i] == 14|| Nummer[i] == 15|| Nummer[i] == 16|| Nummer[i] == 17|| Nummer[i] == 18|| Nummer[i] == 19|| Nummer[i] == 20|| Nummer[i] == 21|| Nummer[i] == 22|| Nummer[i] == 23|| Nummer[i] == 24|| Nummer[i] == 25|| Nummer[i] == 26 || Nummer[i] == 27){
    		if (Nummer[i] == 1){cout << "a";}
    		else if (Nummer[i] == 2){cout << "2";}
    		else if (Nummer[i] == 3){cout << "3";}
    		else if (Nummer[i] == 4){cout << "4";}
    		else if (Nummer[i] == 5){cout << "5";}
    		else if (Nummer[i] == 6){cout << "6";}
    		else if (Nummer[i] == 7){cout << "7";}
    		else if (Nummer[i] == 8){cout << "8";}
    		else if (Nummer[i] == 9){cout << "9";}
    		else if (Nummer[i] == 10){cout << "10";}
    		else if (Nummer[i] == 11){cout << "11";}
    		else if (Nummer[i] == 12){cout << "12";}
    		else if (Nummer[i] == 13){cout << "13";}
    		else if (Nummer[i] == 14){cout << "14";}
    		else if (Nummer[i] == 15){cout << "15";}
    		else if (Nummer[i] == 16){cout << "16";}
    		else if (Nummer[i] == 17){cout << "17";}
    		else if (Nummer[i] == 18){cout << "18";}
    		else if (Nummer[i] == 19){cout << "19";}
    		else if (Nummer[i] == 20){cout << "20";}
    		else if (Nummer[i] == 21){cout << "21";}
    		else if (Nummer[i] == 22){cout << "22";}
    		else if (Nummer[i] == 23){cout << "23";}
    		else if (Nummer[i] == 24){cout << "24";}
    		else if (Nummer[i] == 25){cout << "25";}
    		else if (Nummer[i] == 26){cout << "26";}
    		merk++;
    	}
    }
    getch();
    


  • Ich sehe da gleich ein dutzend Sünden, aber ich vermute mal "Nummer" ist vom typ string. Damit ist nummer[i] vom typ char. Das kannst du zwar prinzipiell vergleichen, aber das macht vermutlich nicht das, was du denkst:
    Denn das Zeichen "1" ist NICHT dasselbe für den computer wie die Zahl 1.

    Das Zeichen "0" hat z.B. den Zahlenwert 48 iirc.

    if(Nummer[i] == 1 || Nummer[i] == 2|| //....
    

    Kannst du übrigens ersatzlos streichen, ich sehe nicht dass das irgendeinen Einfluss auf den Programmablauf hätte.

    Nebenbei bemerkt hast du http://www.c-plusplus.net/forum/304133 nicht beachtet - wichtig dabei: Der Typ von "Nummer" fehlt. Die Lösung ist vermutlich erstmal, "Nummer" als int statt als string zu machen, zumindest wenn meine Glaskugel recht hat. Aber auf korrekte Fehlerbehandlung achten!


  • Mod

    Zeilen 7-33 sind ungefähr

    if (foo == 1) cout << "a"; else cout << foo;
    

    Etwas kürzer, oder?



  • Danke für die Hilfe. 😃 Habe den Fehler gefunden und behoben. c: Und nochmal danke für die anderen Tipps. 👍


Anmelden zum Antworten