Problem mit Objekt in Vektor



  • #include <iostream>
    #include <vector>
    #include <sstream> 
    #include <conio.h>
    #include <cstring>
    #include <cctype>
    using namespace std;
    
    int startgeld = 1000;
    std::string startpin = "0000";
    
    class user{
    public:
    
    	std::string p;
    	int usrf;
    	int u;
    	std::string n;
    	int g;
    	user()
    	    {
    	        u=startgeld;
    	        p=startpin;
    	        g=0;
    	        ostringstream Str;
    	        Str << benutzer;
    	        string name(Str.str());
    	        n=name;
    	        ++benutzer;
    
    	    }
    
    	~user()
    	    {
    		--benutzer;
    	    }
    	};
    
    int main()
    {
    int usr=0;
    vector<user> u;
    user muster;
    u.push_back(muster);
    std::string pin;
    
    std::cout<<"User: ";
    std::cin >> usr;
    
    std::cout<<"Pin: ";
    std::cin >> pin;
    
    if(pin==u[usr].p)
        {
            //...
        }
    return 0;
    }
    

    besser? 😃



  • Hi !
    Du musst sicherstellen, das du auch entsprechend viele Elemente im Vektor hast:

    usr <= u.size()-1;



  • ja mach ich schon , ich will nur nicht 700 zeilen code posten, aber es geht mir nur um die eine Zeile, sonst gehts ja



  • Also damit hat mein Compiler kein Problem, es gibt keine Fehlermeldung diesbezüglich.



  • aaaaaaaaah!
    jetzt geht das bei mir auch, aber alles Zusammen noch nicht.
    EDIT: Es sieht irgendwie so aus, als würde er die Definition des Vektors nicht erkennen, aber ich habs direkt nach int main() definiert.
    Also u.push_back() geht, u[1].p auch. Nur bei u[usr].p kommen so Sachen wie:

    error C2679: Binärer Operator '[': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)

    oder

    error C2228: Links von ".p" muss sich eine Klasse/Struktur/Union befinden.



  • hi,
    ich hab jetz nochml das gesamte programm hochgeladen, falls mir dann jemand besser helfen kann:
    http://web4.v219.ncsrv.de/main.cpp
    ist warscheinlich ziemlich schlechtes C++ aber bis auf die 9 fehler funktionierts gut.
    Danke im Voraus,
    Russell

    EDIT: WIeder jemand, der "voraus" nicht schreiben kann^^



  • ist warscheinlich ziemlich schlechtes C++

    Da hast du nicht untertrieben.

    std::string usr="";
    

    😕



  • ja ich weiß schon 😃
    aber funktionierts bei dir denn?



  • russell schrieb:

    ja ich weiß schon 😃
    aber funktionierts bei dir denn?

    Was heisst du weißt schon ?
    usr ist ein string.
    Wie soll denn das funktionieren ?

    std::string usr="";
    ...
    if(pin==ben[usr].p
    


  • auuuuuu 😃
    jetzt erst gesehen. vieln dank!


Anmelden zum Antworten