C ++ Feil lValue kreves som forlatt operand for tildeling

C ++ Feil lValue kreves som forlatt operand for tildeling
Noen ganger må vi bruke betingede utsagn som tildelingsoperatøren "=". Det er to formål med denne operatøren: Den ene er for å tilordne verdien til enhver variabel, og den andre inkluderer kombinasjonen av to “= =” som brukes til å sammenligne to variabler eller verdier. I noen tilfeller, når vi bruker disse operatørene, returnerer den feilmeldingen “Uttrykk må være en modifiserbar LValue”. Dette er den mest typiske C ++ programmeringsfeilen som man kan møte. Så vi trenger ikke å bekymre oss for det, det er ikke et stort problem å møte en slik type feil. Denne feilen oppstår når vi bruker betingede uttrykk og i stedet for sammenligningen “= =” -operatør. Vi bruker oppgaven “=” -operatøren. Hvis kompilatoren oppfyller denne typen situasjoner, viser den feilmeldingen uten å utføre den med hell.

For å løse en slik type feil, må vi gå gjennom koden vår igjen for å sjekke årsaken som forårsaker denne feilen. Noen ganger blir det vanskelig å lese de lange programmene. For å redusere dette, sjekker vi bare linjen som feilen oppstår. Linjen som har en feil vises også for å gjøre det enkelt å finne ut av det.

Syntaks:

Feil: LValue kreves som venstre oprand for tildeling

Det er ikke koden eller metoden som skal defineres med en forhåndsdefinert syntaks. Det er bare en feilmelding som vises når sammenligningsoperatøren er blandet med oppdragsoperatøren. Deretter vises meldingen som en feil som vises ovenfor. I denne feilen er "lvalue" verdien som vises på venstre side av den operatøren.

Eksempel # 01:

Nå vil vi utføre et eksempel for å sjekke hvordan denne feilen oppstår. Og ved å bruke riktig kodelinje, vil vi også fjerne denne feilen. Flytter vi til hovedkoden vår, vil vi først inkludere overskrifterfilene våre, "iostream" som brukes til å utføre forskjellige input-output-operasjoner som "cout", "cin", etc. Etter det inkluderte vi "Bruke navneområde STD;" Noe som betyr at vi kan bruke variabelnavnene og navnet på objektene som er gitt av standardbibliotekene. Nå, på vei mot hovedfunksjonen vår, har vi først erklært en heltallvariabel med navnet “Myvar” som vi tildelte verdien “5”.

I neste linje brukte vi IF () -uttalelsen som vi passerte tilstanden “5 = Myvar” som vi bruker for å sammenligne verdien “5” med “Myvar” -variabelen. Hvis tilstanden er oppfylt, vil den vise meldingen “Verdien på Myvar er 5”. Vi kjører koden ved hjelp av “F7” -kommandoen eller bare ved å klikke på "Kjør" -knappen.

#inkludere
ved hjelp av navneområdet STD;
int main ()

int myvar = 5;
if (5 = myvar)

std :: cout << "The value of myvar is 5" << std::endl;

La oss sjekke utdataene fra koden vår. Som vist i utdraget, vises feilen som viser at det er en feil i hovedfunksjonen, vises feiltypen i den røde fargede teksten som forteller "LValue som er nødvendig som Venstre operand for oppgaven". Det er ikke nødvendig at hver gang det er en feil, vil teksten være den samme. I en eller annen versjon vises det annerledes som "Feil: uttrykk må være en modifiserbar LValue". Etter feillinjen vises antallet linjer som feilen oppstår. I vårt tilfelle er det “6” også feilsymbolet indikerer at feilen oppstår i IF -uttalelsen, noe som betyr at vi har skrevet feil tilstand i IF -setningen. La oss nå fjerne feilen og sjekke hva som vil skje etter å ha fjernet den.

For å fjerne feilen har vi erstattet tilstanden fra “5 = Myvar” med “5 = = Myvar”. Tilstanden vi passerte for å generere feilkoden brukes til å tilordne verdien til variabelen. I if () -erklæringen passerer vi tilstanden til sammenligningstype som parameter. Vi kan ikke tildele verdien til variabelen; Det er grunnen til forekomsten av feilen. Etter å ha erstattet tilstanden med riktig, viste vi vellykket den indre koden som var meldingen som skal skrives ut.

Eksempel # 02:

I dette eksemplet vil vi lage tre variabler og sammenligne resultatet av subtraksjon av to variabler med den tredje ved å bruke IF () -uttalelsen. Hvis tilstanden er oppfylt, vil den vise meldingen. Etter å ha inkludert toppfiler, vil vi lage tre heltallvariabler “var1”, var2 ”og“ var3 ”som vi tildelte verdiene“ 10 ”,“ 4 ”og“ 6 ”. Deretter kalte vi IF () uttalelsen som vi passerte subtraksjonen av “var1” og “var2”. Ved å bruke operatøren "=" sammenligner vi den resulterende verdien av "var1-Var2" med "var3". Hvis tilstanden er oppfylt, vil den bevege seg innenfor IF -uttalelsen og utfører meldingen om at vi har gitt til "cout" -uttalelsen, at "subtraksjon av var1 og var2 er lik var3". Til slutt, returnerer nullverdien for å utføre koden med hell.

#inkludere
ved hjelp av navneområdet STD;
int main ()

int var1 = 10;
int var2 = 4;
int var3 = 6;
if ((var1 - var2) = var3)

std :: cout <<"subtraction of var1 and var2 is equal to the var3" << std::endl;

retur 0;

Etter utførelsen av koden har vi en feil som vises i utgangsdelen som viser at det er en feil på linje “8”. Feiltypen er "lValue som kreves som forlatt operand for tildeling". Dette betyr at venstre verdi er nødvendig på venstre side av tildelingsoperatøren, slik at vi ikke har gitt verdien til variabelen. I stedet må vi sammenligne verdien fordi hvis () uttalelse brukes til å sammenligne forholdene for ikke å tilordne verdiene til operatøren. Nå vil vi løse feilen ved å plassere “= =” i stedet for “=”.

Etter å ha erstattet sammenligningsoperatøren med oppdragsoperatøren, får vi ønsket utgang. Subtraksjonen av “var1” og “var2” er “6” og verdien av “var3” er også “6” når IF -uttalelsen sammenligner dem begge blir det sant. Så kompilatoren beveger seg inne i IF -setningen og viser meldingen.

Konklusjon

I denne opplæringen studerte vi feilen som kan oppstå på grunn av koderenes uforsiktighet, eller noen ganger oppstår det på grunn av misoppfatningen mellom oppgaven og sammenligningsoperatørene fra nye kodere. Ved hjelp av eksempler diskuterte vi kort metoden for å løse denne typen feil, og også måten å finne feilen.