Problem mit vector



  • Hi

    hab schon wieder ein Problem diesmal mit Vectoren. Während der Runtime tritt ein Fehler auf.

    //---------------------------------------------------------------------------
    
    //eigene Klassen und Funktionen
    #include"user.h"
    #include"menu.h"
    #include"funk.h"
    #include"settings.h"
    //---------------------------------------------------------------------------
    
    int main()
    {
       //Datenströme
       ofstream out("pwd.pw",ios::app);
       ifstream in("pwd.pw");
    
       //Variablen
       admin administrator("admin","bsb","n/a","admin");  //standart administrator
       vector<user> aa;   //user array
       vector<user>::iterator paa;
       vector<admin> bb;  //admin array
       vector<admin>::iterator pbb;
       int iUserzahl=0;
       int iAdmins=0;
       int iUser=0;
       string strInput[2];//Eingabe Puffer 0=Benutzername 1=Passwort
       string strPuffer[5];//Einlese Puffer
       char x[3];  //Noch ein einlese Puffer
       bool bUserchk=false;
       bool bAdminchk=false;
    
       //Zahl der Datensätze aus Datei lesen
       in>>x;
       iUserzahl=atoi(x);
    
       for(int i=0;i<iUserzahl;i++)   //Einlese Schleife
            {
            in>>strPuffer[0];   //Name
            in>>strPuffer[1];   //Passwort
            in>>strPuffer[2];   //Vorname
            in>>strPuffer[3];   //Benutzername
            in>>strPuffer[4];   //Status
    
            if(strPuffer[4]=="user")//user in array schreiben
                    {
                    user Puffer(strPuffer[0],strPuffer[1],strPuffer[2],strPuffer[3]);
                    aa.push_back(Puffer);
                    iUser++;
                    }
            if(strPuffer[4]=="admin")//admin in array schreiben
                    {
                    admin Puffer(strPuffer[0],strPuffer[1],strPuffer[2],strPuffer[3]);
                    bb.push_back(Puffer);
                    iAdmins++;
                    }
            }
    
       while(1)
       {
       start(strInput);
       strInput[1]=pw(strInput[1]);
    
       for(int i=0;i<iUser;i++)  //User Prüfung
            {
            if(aa[i].getBenutzername()==strInput[0])
                    {
                    if(aa[i].getPasswort()==strInput[1])
                            {
                            bUserchk=true;
                            }
                    }
            }
    
       for(int i=0;i<iAdmins;i++) //Admin Prüfung
            {
            if(bb[i].getBenutzername()==strInput[0])
                    {
                    if(bb[i].getPasswort()==strInput[1])
                            {
                            bAdminchk=true;
                            }
                    }
            }
       if(strInput[0]=="admin"&&"bsb"==pw(strInput[1])) //std Admin Prüfung
            {
            bAdminchk=true;
            }
       if(bUserchk)
            break;
       if(bAdminchk)
            break;
       clrscr();
       cout<<"Falscher Benutzername oder Passwort";
       }
    
       getchar();
       getchar();
       return 0;
    }
    //---------------------------------------------------------------------------
    

    bevor ich den Teil in der while(1) Schleife geschrieben habe gings.
    Ich nutze üprigens den Borland C++ Builder 6.

    soll ich die Headerdatein noch posten ??



  • ich glaub es macht mehr sinn wenn du dich mit deinem debugger auseinandersetzt. (als den header auch noch zu posten)



  • Mit dem Debugger komm ich leider nicht klar. 😞

    In der Fehlermeldung steht etwas von einer Zugriffsverletzung.
    Der Debuger springt in die _vector.h zu dieser zeile

    ~vector() { _Destroy(this->_M_start, this->_M_finish); }
    

    edit:

    hab mir mal das Debugg tutorial angeschaut, wirklich geholfen hat mir das zwar nicht, aber ich habe den fahler trotzdem gefunden nur verstehen tu ich ihn nicht.
    In der Settings.h
    vorher:

    #include<string>
    #include<fstream>
    #include<iostream>
    #include<conio>
    #include<vector>
    //include<stdlib>
    using namespace std;
    

    nachher

    #include<string>
    #include<fstream>
    #include<iostream>
    #include<conio>
    #include<vector>
    
    using namespace std;
    


  • das war nicht der fehler^^ willst du uns verschaukeln!?



  • naja jetzt funktionierts und sonst hab ich nix geändert.
    Ich sag ich verstehs nicht.


Anmelden zum Antworten