syntax frage

Taschkin

Mitglied
Ich habe da eine kleine frage.

ich habe eine variable erzeugt:

char auswahl[1];

danach habe ich angegeben:

auswahl = "r";

natürlich ist das nicht alles, aber alle anderen dinge im script sind richtig.
Er beschwärt sich immer mit der meldung:

Lvalue required bei der zeile mit auswahl="r";

Ich wollte fragen was an der schreibweise nicht stimmt oder ich vielleicht was andres übersehen habe
 
Hi!
Du definierst ein character array von der Größe 1 Zeichen, übergibst aber einen String der Länge 2 Zeichen - "r" entspricht r\0.
Desweiteren fehlt der array index.
Versuch mal: auswahl[0] = 'r'

cu
 
r\0

Also so ganz habe ich das nicht verstanden.
wieso habe ich damit zwei zeichen erstellt.
kannst du es mir vielleicht anders erklaeren ?
 
Es funktioniert jetzt, nur habe ich es nicht ganz verstanden.

Andere Frage:
Ich habe eine if Abfrage gemacht und da scheint er auch mit Probleme zu haben.


if ( auswahl[0] != 'r' || 'p' )
{
// irgendeine Anweisung
}
 
\0 bedeutet Nullterminiert. (Der String endet mit der 0).
Wenn du es in ' ' setzt, wird wirklich nur ein Zeichen in den Speicher gelegt.

Bei deiner anweisung musst du schreiben:
Code:
if ( auswahl[0] != 'r' || auswahl[0] != 'p' )
{
//blabla
}
Der Compiler muss ja schon wissen welche variable er auswerten soll :-) ;-)
Gruß
 
Es funktioniert bei mir immer noch nicht:
Die if anweisungen führt er immer aus, egal was ich für auswahl eingegeben habe.

hier mein ausschnitt aus dem quellcode:

if ( auswahl[0] != 'p' || auswahl[0] != 'r' )
{
cout<<"\nSie haben schon wieder eine falsche Eingabe getaetigt, \n";
cout<<"deswegen gehen wir Standartmaesig von der Reihenschaltung aus";
auswahl[0] = 'r';
}
 
Also bei mir gehts.
Aber wahrscheinlich hast du einen logschien Fehler gemacht.
Schreib mal anstatt || .. &&.
Gruß
 
Zuletzt bearbeitet:
die cout ausgabe macht er ja.

Was nicht funktioniert das ist die if anweisung.
die bedingung in der klammer funktioniert nicht.
Er gibt mir immer true aus und führ die if anweisung aus.
Egal was ich für auswahl eingegeben habe.
 
Zurück