Namen übergeben in Klassen



  • Servus,
    ich will ein paar Übungen zu Klassen machen.
    Dabei will ich mit der Methode input_person Namen eingeben und
    print_person Namen ausgeben.

    Leider gibt er jedoch nur den 1. Buchstaben aus.
    Das ist mir eigentlich auch klar weil ich ja nur die ersten Elemente kopiere.
    Jedoch weiß ich nicht wie es anders gehen soll. Dies war nämlich die einzigste Schreibweise wo der Compiler nicht gemeckert hat.

    Kann mir jemand helfen??

    Danke schon mal im vorraus....

    #include <iostream>
    #include <stdlib.h>

    using namespace std;

    class person{

    private:
    char name[20];
    char vorname[20];

    public:
    void input_person( char *n , char *v );
    void print_person( void );

    };

    void person::input_person( char *n , char *v )
    {
    *name = *n;
    *vorname = *v;
    }

    void person::print_person( )
    {
    cout <<endl<<"last name: "<<name;
    cout <<endl<<"first name: "<<vorname;
    }

    int main ()
    {
    char a[20],b[20];

    person one;
    cout << endl<<"Name = ";
    cin >> a;
    cout <<endl<< "Vorname = ";
    cin >> b;

    one.input_person( a , b );
    one.print_person( );

    system ("pause");
    return 0;
    }



  • Hi,
    Benutze die CODE bzw. CPP Tags. Dadurch wird der Code viel lesbarer und es kann dir eher geholfen werden. Ich habe das mal für dich gemacht:

    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    class person
    {
    private:
       char name[20];
       char vorname[20];
    
    public:
       void input_person( char *n , char *v );
       void print_person( void );
    };
    
    void person::input_person( char *n , char *v )
    {
       *name = *n;
       *vorname = *v;
    }
    
    void person::print_person( )
    {
       cout <<endl<<"last name: "<<name;
       cout <<endl<<"first name: "<<vorname;
    }
    
    int main ()
    {
       char a[20],b[20];
    
       person one;
       cout << endl<<"Name = ";
       cin >> a;
       cout <<endl<< "Vorname = ";
       cin >> b;
    
       one.input_person( a , b );
       one.print_person( );
    
       system ("pause");
       return 0;
    }
    

    Ich würde dir empfehlen den std::string zu verwenden.

    Wenn Du trotzdem weiterhin mit char[] oder char* arbeiten möchtest gibt es zum kopieren strcpy(..) und die verwandten Funktionen mit Längenangaben.
    Weitere string manipulations Funktionen findest Du im MSDN.

    Grüsse Simon



  • Ausserdem hat dein Code nichts mit C++/CLI zu tun.
    Er gehört in C++ Forum. Dein Beitrag wird sicher bald verschoben.
    Simon



  • Hey danke simon.gysi an des hab ich gar nicht mehr gedacht das ma des ja mit strcpy machen muss. : )

    Danke für die Hilfe


Anmelden zum Antworten