Problem mit Struktur



  • #include <iostream>
    
    using namespace std;
    
    struct Spieler
    {
    	char Name[30];
    };
    
    char Namen_erfragen();
    
    int main()
    {
    	Spieler Spieler1;
    
    	Spieler1.Name = Namen_erfragen();
    }
    
    char Namen_erfragen()
    {
    	char Name[30];
    	cout << "Namen des Spielers eingeben: ";
    	cin.get(Name, 29);
    
    	return Name;
    }
    

    Zeile, bei der ich eine Fehlermeldung erhalte: Zeile 16
    [Error] incompatible types in assignment of 'char' to 'char [30]'

    Wo liegt der Fehler?



  • Check den Rückgabetyp der Funktion und gleiche ihn mit Zeile 25 und 7 ab. Überlege dann, ob std::string das und viele weitere Probleme lösen könnte. 😉



  • Der erste Fehler ist, dass du C-Strings verwendest statt std::string.
    Der Zweite, dass die Funktion vom Typ char ist statt char .
    Der dritte, dass du Name, eine lokale Variable, die nur innerhalb der Funktion verfügbar ist, zurückgibst.
    Und noch einer: Spieler1.Name kannst du nicht einfach ein char
    zuweisen.



  • Name_erfragen hat ausserdem ein Rückgabetyp char, also ein einzelnes Zeichen. return Name versucht aber, einen array von chars zurück zu geben. Und überhaupt würdest Du mit so einem Rückgabewert Namen mit genau einem Buchstaben unterstützen. Gibt es eigentlich Vornamen mit einem Buchstaben? Heisst hier jemand beispielsweise 'F'? 😃



  • tntnet schrieb:

    Gibt es eigentlich Vornamen mit einem Buchstaben? Heisst hier jemand beispielsweise 'F'? 😃

    https://www.c-plusplus.net/forum/u118435
    🤡


  • Mod

    tntnet schrieb:

    Gibt es eigentlich Vornamen mit einem Buchstaben? Heisst hier jemand beispielsweise 'F'? 😃

    Der Klassiker zum Thema:
    Falsehoods Programmers Believe About Names


Log in to reply