Hvordan bruke %i og %d for å skrive ut heltall i C ved hjelp av printf

Hvordan bruke %i og %d for å skrive ut heltall i C ved hjelp av printf
På C -programmeringsspråk spiller formatspesifikasjonene en avgjørende rolle når de hjelper deg med å vise en verdi ved utgangen. Disse formatspesifikasjonene brukes med printf () -funksjonen for å spesifisere hvilken type data som må sendes ut. En av de mye brukte formatspesifikasjonene i C -programmeringsspråket er %Jeg og %d som brukes til å skrive ut heltalene.

Hvis du ikke vet om %Jeg og %d Formatspesifikasjoner, følg retningslinjene for denne artikkelen.

%i format Spesifikator

På C -programmeringsspråk, %Jeg brukes til å skrive ut et signert heltall når det brukes med printf () -funksjonen. De signerte heltallene er de som enten kan være positive eller negative. I C -programmering ved bruk av %I må argumentverdien som passerer være et uttrykk eller en heltallstype som automatisk evaluerer i en heltalldatatype. Du kan også bruke %Jeg Spesifikasjon for å lese en karakterverdi som kommer innenfor området for et signert heltall.

%d format spesifikasjon

De %d Formatspesifikasjon derimot brukes til å skrive ut det usignerte heltallet i programmeringsspråket C. Her er usignerte heltall positive heltall. På C -språk når du bruker %D, så verdien av argumentertypen int.

Forskjeller

Både %Jeg og %d Formatspesifikasjoner brukes ofte på C -programmeringsspråket for utskrift av heltall. De kan se like ut når det.

La oss følge opp med en prøvekode der begge formatspesifikasjonene brukes.

#inkludere
int main ()
int siffer;
printf ("Vennligst skriv inn et hvilket som helst siffer:");
scanf ("%i", & siffer);
printf ("\ n sifferet er: %i \ n", siffer);
printf ("sifferet er: %d \ n", siffer);
retur 0;

I denne koden initialiserer vi først en variabel og tar verdi fra brukeren ved hjelp av SCANF (). Så viser vi output ved hjelp av %d og %i.

Produksjon:

Begge gir en lignende utgang når de brukes med printf () funksjon. Det spiller ingen rolle om du angir den positive verdien eller negative, resultatet vil alltid være det samme.

Imidlertid, hvis vi ser på SCANF -funksjonen, kan vi differensiere dem riktig. I koden ovenfor, hvis vi legger inn en desimalverdi som “012”. Hvis vi bruker “%D” i stedet for %Jeg, Du får utgangen 12. Årsaken er at %d ignorerer 0 nullverdien fra brukerinngangen.

#inkludere
int main ()
int siffer;
printf ("Vennligst skriv inn et hvilket som helst siffer:");
scanf ("%d", & siffer);
printf ("\ n sifferet er: %i \ n", siffer);
printf ("sifferet er: %d \ n", siffer);
retur 0;

Produksjon

Hvis den samme verdien legges inn ved hjelp av %Jeg Som i SCANF () -funksjonen vil utgangen være 10 i dette tilfellet. Grunnen er %Jeg Skriver ut desimalverdien på 012 (Octal Representation).

#inkludere
int main ()
int siffer;
printf ("Vennligst skriv inn et hvilket som helst siffer:");
scanf ("%i", & siffer);
printf ("\ n sifferet er: %i \ n", siffer); // skoutgang
printf ("Digit er: %d \ n", siffer); // skoutgang
retur 0;

Konklusjon

Formatspesifikasjon er et mønster som opprinnelig starter med % tegn, og det forteller oss vanligvis hva slags data som er plassert i input og hvilke data som skal vises. %d og %Jeg er to spesifikasjoner som er mye brukt i C -programmering. De er like når de brukes med printf () -funksjonen, men de sender ut forskjellige resultater når de brukes med Scanf () -funksjonen.