code funktioniert nicht.



  • Das ist nicht der Grund.

    Hast du mal getestet? Mal ne 8 eignegeben und mal nicht? und geguckt ob das was du dir vorstellst da raus kommt?



  • Skym0sh0 schrieb:

    Das ist nicht der Grund.

    Hast du mal getestet? Mal ne 8 eignegeben und mal nicht? und geguckt ob das was du dir vorstellst da raus kommt?

    ja anfangs ist immer "falsch" rausgekommen und habe mich gewundert,wieso bei 8 nicht "richtig" angezeigt wird.

    jetzt gehts aber und mein code ist :

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    {
    
    		int result = 8;
    		char eingabe;
    
    		cout << "Was ist 4+4?" << endl;
    			cin >> eingabe;
    
    			if 	(eingabe = result) 
    
    				{ 
    					cout << "RICHTIG!" << endl;
    				}
    
    				else if (eingabe !=8 )
    				{
    
    				cout << "Falsch!" << endl;
    				}
    
     system("PAUSE");
     return (0);
    }
    


  • oh mir ist aufgefallen,dass jetzt immer richtig rauskommt....



  • if  (eingabe = result)
    

    == FAIL

    if  (eingabe - '0' == result)
    

    Und dem entsprechend auch

    if  (eingabe - '0' != result)
    


  • Videonauth schrieb:

    if  (eingabe = result)
    

    == FAIL

    if  (eingabe - '0' == result)
    

    oh funktioniert.
    danke!

    wie kommst du auf die 0 ?



  • Damit macht er aus dem ASCII Zeichen '8' auch den Wert 8.



  • Wie komme ich auf die 0?

    Ganz einfach du liesst deine Eingabe in einen 'char' ein. Wenn du dort nun über cin einliesst wird der ASCII wert der Zahl 8 in deinem char abgelegt. (Das ist die Nummer 56) Die Zahl 0 ist ASCII 48.

    Wenn ich nun die 48 von 56 abziehe erhalte ich 8 und wenn ich das wiederum mit result vergleiche welches in dem Falle auch 8 ist erhalte ich true.

    http://en.cppreference.com/w/cpp/language/ascii



  • Videonauth schrieb:

    Wie komme ich auf die 0?

    Ganz einfach du liesst deine Eingabe in einen 'char' ein. Wenn du dort nun über cin einliesst wird der ASCII wert der Zahl 8 in deinem char abgelegt. (Das ist die Nummer 56) Die Zahl 0 ist ASCII 48.

    Wenn ich nun die 48 von 56 abziehe erhalte ich 8 und wenn ich das wiederum mit result vergleiche welches in dem Falle auch 8 ist erhalte ich true.

    http://en.cppreference.com/w/cpp/language/ascii

    vielen dank.
    wieder was neues gelernt 🕶



  • wenn du eine Zahl einlesen und vergleichen möchtest, dann mach das doch auch:

    // oder: int num = 0;
    int num { 0 };
    cin >> num;
    


  • hardware schrieb:

    int num { 0 };

    lol


Log in to reply