Ausgabe vector



  • Hallo Community,

    habe die Such-Funktion genutzt, google ebenfalls, werd aus den Inhalten nicht schlauer.

    Problem: Ich schreibe ein kleines Programm, in das man ein Termin (Meeting) anlegen kann, diesen Termin speichert man in einem Vector ab.
    Jetzt will ich diesen Termin anzeigen lassen. Es wird aber nur eine lange Zahl, vermutlich die Adresse ausgegeben. HELP!!!

    Kleiner Ausschnitt aus meinem Programm

    //___steht alles in der main Funktion drin__________________________________//
    cout << ".:Neuen Meeting anlegen:." <<endl;
                cMeeting* myTerminNeu = new cMeeting();
                    cout << "Name:\t\t";
                    cin >> sName;
                    fflush( stdin );
                    cout << "Datum:\t\t";
                    cin >> iDay;
                    fflush( stdin );
                    cout << "Monat:\t\t";
                    cin >> iMonth;
                    fflush( stdin );
                    cout << "Jahr:\t\t";
                    cin >> iYear;
                    fflush( stdin );
                    cout << "Telefonnummer:\t";
                    cin >> sPhone;
                    fflush( stdin );
                    cout << "Kommentar:\t";
                    cin >> sComment;
                    fflush( stdin );
                    myTerminNeu->setContact( sName );
                    myTerminNeu->setDay( iDay );
                    myTerminNeu->setMonth( iMonth );
                    myTerminNeu->setYear( iYear );
                    myTerminNeu->setPhone( sPhone );
                    myTerminNeu->setComment( sComment );
    
                    oTerminKalender.addTermin( myTerminNeu );
                    oTerminKalender.print( );
    //_________________________________________________________________________//
    
    //_class cTerminKalender___________________________________________________//
    
    void cTerminKalender::addTermin( cTermin* poTermin_i )
    {
        oTerminList_e.push_back( poTermin_i );  //wird im Vector hinzugefügt
    
    }
    
    void cTerminKalender::delTermin( unsigned int iIndex_i )
    {
        //tut noch nichts
    }
    
    cTermin* cTerminKalender::getTermin( unsigned int iIndex_i )
    {
        //tut noch nichts    
    }
    
    void cTerminKalender::print( void ) //anzeigen der gespeicherten Termine
    {
        vector<cTermin *>::iterator itr = oTerminList_e.begin();
    
        while( itr != oTerminList_e.end() )
        {
            cout << "Kontakt:\t" << *itr << endl;
            ++itr;
        }
    
    }
    
    cTerminKalender::cTerminKalender()
    {
    
    }
    
    cTerminKalender::~cTerminKalender()
    {
    
    }
    

    Falls es euch noch hilft, hier die Ausgabe meiner Konsole:

    Kontakt: 95411827



  • Hi

    Du scheinst in dem vector Zeiger zu haben.

    vector<cTermin *>::iterator itr = oTerminList_e.begin();
    

    Und wenn du jetzt den Iterator dereferenzierst, bekommst du lediglich den Pointer. Also musst du nochmal dereferenzieren, damit du das Objekt hast.



  • *itr Liefert Dir einen Zeiger, da Dein Vektor Iterator cTermin * enthält.

    Also eher so:

    cout << "Kontakt:\t" << **itr << endl;
    

    oder, wenn cTermin eine Struktur ist:

    cout << "Kontakt:\t" << *itr->Kontakt << endl;
    


  • Danke schön, hat alles geklappt.

    Denke oft zu kompliziert und mache Leichtsinnsfehler, die mich zum verzweifeln bringen 🙂

    Vielen Dank!


Anmelden zum Antworten