Feil ISO C ++ forbyr sammenligning mellom pekeren og heltall

Feil ISO C ++ forbyr sammenligning mellom pekeren og heltall
I C ++ brukes enkelt apostrofer til å representere tegn, ikke strenger. Vi bruker doble sitater symboler for å epitomisere pekeren. Etter å ha samlet programmene i C ++, får vi forskjellige feil. Sammenligningsfeil er en av dem. Noen ganger etter å ha kjørt programmet, skaffer vi oss “ISO C ++ forbyr sammenligning mellom pekeren og heltall” eller fra tid til annen, oppnår vi “ISO C ++ forbyr sammenligning mellom pekeren og heltallet [-fpermissiv]”. Når vi får denne typen feil, må vi sjekke sammenligningsbetingelsen som brukes på programmet. Vi må huske denne tingen at sammenligningstilstanden er uforenlig med den distinkte datatypen. For å løse C ++ forbyr sammenligningsfeil, må vi ganske enkelt evaluere den sammenlignbare formen for definerte variabler under forhold.

I denne gjenstanden jobber vi med disse feilene og ser hvordan vi skal løse dem i C++.

Å ha forskjellige datatyper av variabler under sammenligning:

Etter å ha brukt navneområdet, erklærer vi funksjonen i dette tilfellet. Deretter initialiserer vi variabelen 'V' for verdi og tildeler verdien 1. Vi bruker IF -tilstanden for å sammenligne verdien med funksjonen. Hvis verdien er større enn funksjonen, vil det være en økning med 1 i verdien. Funksjonen må returnere verdien. Nå starter vi hoveddelen av koden. Vi erklærer variabelen 'V'.

#inkludere
ved hjelp av navneområdet STD;
int f (int j, int k)
int v = 1;
if (v> f)
return (v+1);

retur v;

int main ()
int v = f (4,7);
retur 0;

Etter å ha sammenstilt, oppnår vi feilen 'ISO C ++ forbyr sammenligning mellom pekeren og heltall [-fpermissiv]', så programmet blir ikke utført.

Når vi bruker tilstanden hvis (V> F), gjør vi en feil her. Vi sammenligner funksjonen med heltall, så her er denne sammenligningen feil. Sammenlign alltid de variablene som inneholder en lignende datatype. Når en vurdering er unøyaktig, får vi denne typen feil. Derfor, her, må vi evaluere med noen få integrerte verdier. Her har vi eliminert funksjonssamtalen og evaluert den med en heltallverdi. Ved å gjøre dette kan feilen løses.

Ugyldig type 'dobbel (int)':

I begynnelsen av programmet omfatter vi biblioteket . Så definerer vi størrelsen på listen. I hoveddelen definerer vi variablene. Listedatatypen er 'dobbelt'. Vi erklærer funksjonen 'get_avg' som har datatype dobbelt. Vi passerer to parametere for funksjonen. Deretter erklærer vi "sum" -variabelen med den doble datatypen. Vi søker om sløyfe, og verdien økes for å få summen.

#inkludere
#Define størrelse 15
int main (void)
dobbeltliste;
dobbel get_avg (const double list [], int r);
int j;
dobbel sum = 0;
int n [størrelse];
for (j = 0; jsum += liste [j];

retur (sum);

Her får vi også den samme feilen. Fordi funksjonen alltid inneholder argumentene med samme datatype. Og i denne koden passerer vi parameteren for funksjonen med forskjellige datatyper.

Bruk if-ests-uttalelse:

Dette programmet inkluderer først overskriftsfilen for input og utgangsformål. Deretter bruker vi navneområdet standard. I hoveddelen av koden erklærer vi strengen 'S'. Datatypen på strengen er 'røye'. Vi passerer verdi 5 som et argument til strengen. Videre bruker vi IF-elvetilstanden; Hvis brukeren går inn i 'XYZ', viser 'cout' -funksjonen 'riktig' på skjermen; Ellers viser den en 'i riktig' melding.

#inkludere
ved hjelp av navneområdet STD;
int main ()
char s [5];
cout << "Enter string";
cin >> s;
if (s == 'xyz')

cout << "correct";
annet
cout << "In correct";

retur 0;

Når vi utfører programmet, skaffer vi oss feilen: 'ISO C ++ forbyr sammenligning mellom pekeren og heltallet [-fpermissiv]. If (s == 'xyz'), her 's' er konstant char* type. Og det er en rekke karakterer. Men her er 'XYZ' bevisst som en heltallverdi. Det må være en insisterende strengverdi på grunn av det faktum at et enkelt anførselstegn blir diskutert som en integrert verdi.

Vi får forskjellige typer feil etter å ha kjørt programmene. Feilene er av to slags kjøretidsfeil og kompilator-tidsfeil. Denne feilen er en kjøretidsfeil.

Hvordan løse feilen?

Heretter integrerer overskriftsfilen og bruker navneområdet standard. Vi koder videre i hoveddelen. Strengen er erklært. Vi bruker 'Cout' for å skrive ut meldingen 'Enter The String' på skjermen, slik at brukeren skriver inn strengen. For å sjekke tilstanden bruker vi IF-Else-setningen.

#inkludere
ved hjelp av navneområdet STD;
int main ()
streng s;
cout << "Enter the string: ";
cin >> s;
if (s == "xyz")

cout << "correct";
annet
cout << "In correct";

retur 0;

For sammenligning må vi derfor bruke doble anførselstegn "XYZ". Og oppgi det som en variabel av strengen. Nå kan vi forholde oss ved å bruke S == “XYZ”.

Når brukeren legger inn 'XYZ' -strengen, skriver programmet riktig fordi vi definerte den samme strengen i ovennevnte kode. Brukeren skrev inn en streng, og den definerte strengen er den samme, så vi får denne utgangen.

Konklusjon:

Denne artikkelen definerer først feilen ISO C ++ forbyr sammenligning mellom pekeren og heltall. Vi forklarte også årsaken bak denne feilen. Og metoden for å løse dette problemet. Når vi sammenligner variablene som har, i motsetning til datatyper, får vi denne typen feil. For å eliminere denne typen feil, må vi bruke variabler med identiske datatyper når vi sammenligner to variabler.