char, if-abfrage ohne übereinstimmungen



  • Hi,
    ich versuch mich grad ein bisschen an c++...
    Anfänger, also nicht schimpfen, ja...

    char eingabe[100];
        cout << "Was willst du nun tun...." << endl;
    cin >> eingabe;
    if (eingabe == "x")
    {}
    if (eingabe == "y")
    {}
    

    So, mein Problem:
    Komplieren, alles klappt. Wenn ich aber an diese Stelle komme, dann wir keine der if-Schleifen ausgelöst. (nein, ich hab mich nicht jedesmal vertippt.)

    Hoffe ihr könnt mir helfen.
    Falls noch andere Code-Teile relevant sind werde ich die natürlich auch posten.
    Ich möchte aber kein
    "1. .... 2. .... 3. ...." machen.

    Vielen dank schonmal



  • Nimm std::string statt char -Arrays, damit sparst du dir viele Probleme. Ansonsten müsstest du die Funktion strcmp() statt operator== benutzen. Aber glaub mir, die string -Klasse ist viel komfortabler und sicherer.



  • könntest du mir vllt grade meinen quelltext dann anpassen (als beispiel) ich denke das würde für mich reichen, um den gesamten quelltext zu ändern.

    vielen dank



  • #include <string>
    #include <iostream>
    // mit "using namespace std;" entfallen unten sämtliche "std::" ;-)
    
    // ...
    
    std::string eingabe;
    std::cout << "Was willst du nun tun...." << std::endl;
    std::cin >> eingabe;
    if (eingabe.compare("x") == 0) // hier kann auch einfach stehen: eingabe == "x", da std::string einen operator== definiert.
    {
    // mach irgendwas, wenn eingabe == "x"
    }
    if (eingabe.compare("y") == 0) // das gleiche wie oben
    {
    // mach irgendwas, wenn eingabe == "y"
    }
    

    und variante mit strcmp

    #include <iostream>
    using namespace std;
    
    // ...
    
    char eingabe[100];
    cout << "Was willst du nun tun...." << endl;
    cin >> eingabe;
    if (!strcmp(eingabe, "x")) // gleichbedeutend mit: strcmp(eingabe, "x") == 0
    {
    // mach irgendwas, wenn eingabe == "x"
    }
    // usw.
    


  • Wieso compare() auf 0 prüfen? Für irgendwas gibts den operator== .

    if (eingabe == "y")
    


  • Vielen dank schonmal, ich werd jetzt mal des ganze mit string probieren...



  • Super, es funktioniert.
    Danke dafür.
    Werd dann mal weitermachen.


Anmelden zum Antworten