Was mache ich falsch?



  • Hallo zusammen,

    ich würde gern das Alter + Vor & Nachnamen speichern in meinem Programm nur leider wird nur ein Buchstabe gespeichert und angezeigt.

     #include <iostream>
    
    using namespace std;
    
    
    class Person
    {
    	private:
    		int alter;
    		char name;
    		char nachname;
    		
    	public:
    		int getalter();
    		void setalter(int zahl);
    		
    		char getname();
    		void setname(char name);
    		
    		char getnachname();
    		void setnachname(char nachname);
    		
    };
    
    //Alter
    
    int Person::getalter()
    {
    	return alter;
    }
    
    void Person::setalter(int a)
    {
    	alter=a;
    }
    
    //Name
    
    char Person::getname()
    {
    	return name;
    }
    
    void Person::setname(char b)
    {
    	name=b;
    }
    
    //Nachname
    
    char Person::getnachname()
    {
    	return nachname;
    }
    
    void Person::setnachname(char c)
    {
    	nachname=c;
    }
    
    
    
    int main ()
    {
    	//Dateneingabe!!
    	
    	Person abruf;
    		int speicher; 
    		char speicher1;
    		char speicher2;
    		
    		cout<<"Alter der Person eingeben! \n-> ";
    		cin>>speicher;
    		abruf.setalter(speicher);
    		cout<<"Name eingeben \n-> ";
    		cin>>speicher1;
    		abruf.setname(speicher1);
    		cout<<"Nachname eingeben \n-> ";
    		cin>>speicher2;
    		abruf.setnachname(speicher2);
    		
    	//Datenausgabe
    	
    		cout<<"\nAlter: ";
    		cout<< abruf.getalter();
    		cout<<"\nName: ";
    		cout<< abruf.getname();
    		cout<<"\nNachname: ";
    		cout<< abruf.getnachname();
    
    return 0;
    }
    

    Mir wurde gesagt das ich bei jedem char ein * dahinter machen soll was nicht zum gewünschten erfolgt geführt hat. Der zweite Tipp den ich gefunden habe war das ich [30] hinter jedes char packen soll das hat aber auch nicht wirklich geklappt.

    Gruß

    Martin



  • Wo hast du denn das mit "char" her?
    Versuche das mal an allen entsprechenden Stellen std::string zu verwenden, ich habe jetzt nicht alles im Detail durchgeschaut, aber das ist auf jeden Fall der richtigere Ansatz.



  • Was mache ich falsch?

    Du versuchst, C++ durch herumprobieren zu lernen. Das funktioniert nicht. Besorge dir ein anständiges C++ Buch.



  • @martin_99 sagte in Was mache ich falsch?:

    char speicher1;
    char speicher2;
    

    Du speicherst ja auch nur ein Zeichen, ein Buchstabe. Du möchtest eine Folge von Zeichen, einen string wie schon erwähnt. Aber nicht ein C char-array, wo immer Dir das geraten wurde.



  • @schlangenmensch Hat geklappt danke.



  • @lemon03
    3 mal darfst du raten..... In der Schule.



  • Von Dein Kumpels? 😉
    Frag das nächste Mal den Lehrer.


Log in to reply