error C2106: '=' : Linker Operand muss ein L-Wert sein VERSTEH ICH NICHT
-
HALLO KANN MIR VIELLEICHT EINER SAGEN WAS DAS BEDEUTET?
Als ich muss ein Programm für die Schule schreiben was eine Datenbank beinhaltet.
Ich hab mir eine Videodatenbank ausgedacht.
Man kann Filmtitel, Länge, Kathegorie und so alles eingeben und auch ausgeben,
jetzt wollte ich die Ausgabe von den Filmtiteln sortieren, also zuerst die filme mit A, dann B....und so weiter und in dieser Zeile hier kam der Fehler://##################SORTIEREN##################
int Sortieren(struct Datenbank Video[], int *lang)
{char hilfe[50];
int h=0;
int a=0;
int b=0;while (h < *lang)
{
if(strcmp(Video[a].Titel, Video[b].Titel )==-1)
{
if(Video[a].Titel > Video[b].Titel)
{
hilfe = Video[b].Titel; //Hier in der Zeile DEr FehlerVideo[b].Titel = Video[a].Titel;
Video[a].Titel = hilfe;
}
a++;
b++;
}
h++;
}return 0;
}kann mir einer sagen was das bedeutet?
thx
-
Du kannst einem Array nicht einfach einen String zuweisen, du musst den String kopieren.
Besser ist es du verwendest statt char-arrays std::string, dort kannst du das direkt machen, Bsp:#include <string> using std::string; int main () { string foo = "foo"; string bar = "bar"; foo = bar; foo += "foo"; }
-
L-Values sind Werte, die auf der linken Seite einer zuweisung stehen dürfen. Du verwendest ein Feld von chars, was du erstmal als einen konstanten Zeiger auf chars getrachten kannst. Konstanten sind aber niemals L-Values.
versuchs entweder mit strcpy oder verwendet std::string.
-
Danke für eure Tipps!
Ich hab mein Programm einfach mal neu-installiert und jett zeigt der mir kein Felher mehr an und das Programm läuft,....komisch.
Vielen Dank aber trotzdem
schönen Snntag Abend euch noch!