Bitte um Hilfe #1



  • Abend 😉

    Folgendes Problem...

    Ich müsste mit dem if zwei Bedingungen gleichzeitig abfragen aber iwie nimmt der Compiler das && nicht an 😕 Wo liegt der Fehler ?

    [code="cpp"]

    #include "stdafx.h"
    #include "iostream"
    #include "string"

    using namespace std;
    using namespace system;

    string Bn1 = "Max";
    int pin1 = 1111;
    int kartenn1 = 837495;
    int konton1 = 84027493;

    string Bn2 = "Maxx";
    int pin2= 2222;
    int kartenn2 = 284057;
    int konton2 = 94026496;

    string Bn3 = "Maxxx";
    int pin3= 3333;
    int kartenn3 = 948572;
    int konton3 = 84026491;

    int _tmain(int argc, _TCHAR* argv[])
    {

    string BN;
    string PIN;

    cout << "Benutzername :" << endl;
    cin >> BN;
    cout << "PIN :" << endl;
    cin >> PIN;

    if ( BN == Bn1 && PIN = pin1 )
    {
    cout << "1";
    }
    else if ( BN == Bn2 && PIN = pin2 )
    {
    cout << "2";
    }
    else if ( BN == Bn3 && PIN = pin3 )
    {
    cout << "3";
    }
    else
    {
    cout << "Error 00" << endl;

    }

    system("pause");

    return 0;
    }

    Und wo wir schon dabei sind, gibt es eine Möglichkeit den Code in einem Rahmen einzufügen auf dieser Website ? Wenn ja wie ?



  • ...



  • Kommen keine mehr hinzu ist nur der anfang von nem bankprogramm muss auch eh alles noch in while schleife einfügen und paar sachen ranschreiben, mich verwirrt nur das dass && nicht funktioniert 😕 is da iwein fehler im code oder einfach nur Compilerfehler ?

    test
    

    naja wenigstens das mit dem rahmen funzt xD



  • Der Fehler sitzt hier eindeutig VOR dem Computer.

    // Wer auch Kommentare liest ist klar im Vorteil ;-)
    


  • Oh hab sie überlesen war in Eile xD

    #include "stdafx.h" // War der Computer, nicht ich, habs da einfach stehn lassen :D
    #include "iostream"
    #include <string>
    
    using namespace std; 
    
    string Bn1 = "Max"; // Nur so als Globale angelegt, macht ja kein unterschied oder ?
    int pin1 = 1111;  
    int kartenn1 = 837495; 
    int konton1 = 84027493; 
    
    string Bn2 = "Maxx"; 
    int pin2 = 2222; 
    int kartenn2 = 284057; 
    int konton2 = 94026496; 
    
    string Bn3 = "Maxxx"; 
    int pin3 = 3333; 
    int kartenn3 = 948572; 
    int konton3 = 84026491; 
    
    int main()
    { 
        string BN; 
        string PIN; 
    
        cout << "Benutzername :" << endl; 
        cin >> BN; 
        cout << "PIN :" << endl; 
        cin >> PIN; 
    
        if ( BN == Bn1 && PIN == pin1 )
        { 
            cout << "1"; 
        } 
        else if ( BN == Bn2 && PIN == pin2 )
        { 
            cout << "2"; 
        } 
        else if ( BN == Bn3 && PIN == pin3 )
        { 
            cout << "3"; 
        } 
        else 
        { 
            cout << "Error 00" << endl; 
        } 
    
        system("pause"); // Nur vorübergehnd da ;) 
    }
    

    Jetzt meint der Compiler das die zweiten "==" keine Operatoren sind -.-



  • Fehler: error C2678: Binärer Operator '==': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)

    Ja klar weil du keinen string mit einen int vergleichen kannst, dann musste schon eins von beiden umwandeln

    if ( BN == Bn1 && atoi(PIN.c_str()) == pin1 )
        {
            cout << "1";
        }
    	else if ( BN == Bn2 && atoi(PIN.c_str()) == pin2 )
        {
            cout << "2";
        }
    	else if ( BN == Bn3 && atoi(PIN.c_str()) == pin3 )
        {
            cout << "3";
        }
        else
        {
            cout << "Error 00" << endl;
        }
    

    so zum beispiel, fehlerausgabe von VS sollte man schon lesen



  • Ich Idiot 😃

    Danke 🙂

    #closed


Anmelden zum Antworten