logo

Formatspesifikasjoner i C

Formatspesifikatoren i C brukes til å fortelle kompilatoren om typen data som skal skrives ut eller skannes i inn- og utdataoperasjoner. De starter alltid med en % symbol og brukes i den formaterte strengen i funksjoner som printf(), scanf, sprintf(), etc.

C-språket gir en rekke formatspesifikasjoner som er assosiert med de forskjellige datatypene som %d for int, %c for char osv. I denne artikkelen vil vi diskutere noen vanlig brukte formatspesifikasjoner og hvordan de skal brukes.



Liste over formatspesifikasjoner i C

Tabellen nedenfor inneholder de mest brukte formatspesifikasjonene i C

Formatspesifikasjoner

Beskrivelse



%c

For tegntype.

%d

For signert heltallstype.

%e eller %E



For vitenskapelig notasjon av flyter.

%f

For flytetype.

%g eller %G

For flytetype med gjeldende presisjon.

%Jeg

Usignert heltall

%ld eller %li

Lang

%lf

Dobbelt

%Lf

Lang dobbel

%lu

Usignert int eller usignert lang

%lli eller %lld

Lang lang

%llu

Usignert lang lang

%O

Oktal representasjon

%p

Peker

%s

String

%i

string.format java-streng
Usignert int

%x eller %X

Heksadesimal representasjon

%n

Skriver ingenting

%%

Skriver ut % tegn

Eksempler på formatspesifikasjoner i C

1. Tegnformatspesifikasjon – %c i C

%c er formatspesifikasjonen for røye datatype på C-språk. Den kan brukes til både formatert inndata og formatert utgang i C-språk.

Syntaks:

scanf('  %d  ...', ...); printf('  %d  ...', ...);>

Eksempel:

C




// C Program to illustrate the %c format specifier.> #include> int> main()> {> >char> c;> >// using %c for character input> >scanf>(>'Enter some character: %c'>, &c);> >// using %c for character output> >printf>(>'The entered character: %c'>, &c);> >return> 0;> }>

>

>

Inndata:

Enter some character: A>

Produksjon:

The entered character: A>

2. Heltallsformatspesifikasjon (signert) – %d i C

Vi kan bruke den signerte heltallsformatspesifikasjonen %d i funksjonene scanf() og print() eller andre funksjoner som bruker formatert streng for inn- og utdata av int data-type.

Syntaks:

scanf('%d...', ...); printf('%i...', ...);>

Eksempel:

C




// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> >int> x;> >// taking integer input> >scanf>(>'Enter the two integers: %d'>, &x);> >// printing integer output> >printf>(>'Printed using %%d: %d '>, x);> >printf>(>'Printed using %%i: %3i '>, x);> >return> 0;> }>

>

>

Inndata:

Enter the integer: 45>

Produksjon:

Printed using %d: 45 Printed using %i: 45>

3. Usignert heltallsformatspesifikasjon – %u i C

%u er formatspesifikasjonen for den usignerte heltallsdatatypen. Hvis vi spesifiserer en negativ heltallsverdi til %u, konverterer den heltallet til det første komplementet.

Syntaks:

printf('  %u  ...', ...); scanf('  %u  ...', ...);>

Eksempel: Følgende C-program viser hvordan du bruker %u i C.

C




// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> >unsigned>int> var;> >scanf>(>'Enter an integer: %u'>, &var);> >printf>(>'Entered Unsigned Integer: %u'>, var);> >// trying to print negative value using %u> >printf>(>'Printing -10 using %%u: %u '>, -10);> >return> 0;> }>

>

r in c programmering

>

Inndata:

Enter an integer: 25>

Produksjon:

Entered unsigned integer: 25 Printing -10 using %u: 4294967286>

4. Flytpunktformatspesifikasjoner – %f i C

De %f er flyttallformatspesifikatoren på C-språket som kan brukes inne i den formaterte strengen for inndata og utdata av flyte data-type. Bortsett fra %f, kan vi bruke %Det er eller %OG formatspesifikasjoner for å skrive ut flyttallsverdi i eksponentiell form.

Syntaks:

printf('  %f  ...', ...); scanf('  %e  ...', ...); printf('  %E  ...', ...);>

Eksempel:

C




// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> >float> a = 12.67;> >printf>(>'Using %%f: %f '>, a);> >printf>(>'Using %%e: %e '>, a);> >printf>(>'Using %%E, %E'>, a);> >return> 0;> }>

>

>

Produksjon

Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>

5. Usignert oktaltall for heltall – %o i C

Vi kan bruke %o-formatspesifikasjonen i C-programmet for å skrive ut eller ta inndata for det oktale heltall uten fortegn.

Syntaks:

printf('  %o  ...', ...); scanf('  %o  ...', ...);>

Eksempel:

C




#include> int> main()> {> >int> a = 67;> >printf>(>'%o '>, a);> >return> 0;> }>

>

>

Produksjon

103>

6. Heksadesimal uten fortegn for heltall – %x i C

%x-formatspesifikasjonen brukes i den formaterte strengen for heksadesimale heltall. I dette tilfellet vil alfabetene i de heksadesimale tallene være med små bokstaver. For tall med store bokstaver bruker vi %X i stedet.

Syntaks:

printf('  %x  ...', ...); scanf('  %X  ...', ...);>

Eksempel:

C




// C Program to demonstrate the use of %x and %X> #include> int> main()> {> >int> a = 15454;> >printf>(>'%x '>, a);> >printf>(>'%X'>, a);> >return> 0;> }>

>

>

Produksjon

3c5e 3C5E>

7. Strengformatspesifikasjoner – %s i C

%s i C brukes til å skrive ut strenger eller ta strenger som input.

nettverksoperativsystem

Syntaks:

printf('  %s  ...', ...); scanf('  %s  ...', ...);>

Eksempel:

C




// C program to illustrate the use of %s in C> #include> int> main()> {> >char> a[] =>'Hi Geeks'>;> >printf>(>'%s '>, a);> >return> 0;> }>

>

>

Produksjon

Hi Geeks>

Eksempel: Arbeidet til %s med scanf() er litt annerledes enn arbeidet med printf(). La oss forstå dette ved hjelp av følgende C-program.

C




// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> >char> str[50];> >// taking string as input> >scanf>(>'Enter the String: %s'>, str);> >printf>(>'Entered String: %s'>, str);> >return> 0;> }>

>

>

q4 måneder

Inndata

Enter the string: Hi Geeks>

Produksjon

Hi>

Som vi kan se, blir strengen bare skannet til et mellomrom påtreffes. Det kan vi unngå ved å bruke skanningssett i C .

8. Adresseformatspesifikasjoner – %p i C

C-språket gir også formatspesifikasjonen for å skrive ut adressen/pekerne. Vi kan bruke %p til å skrive ut adresser og pekere i C

Syntaks

printf('  %p  ...', ...);>

Eksempel:

C




#include> int> main()> {> >int> a = 10;> >printf>(>'The Memory Address of a: %p '>,(>void>*)&a);> >return> 0;> }>

>

>

Produksjon

The Memory Address of a: 0x7ffe9645b3fc>

Input og Output Formatering

C-språket gir noen verktøy som vi kan bruke til å formatere input og output. De er vanligvis satt inn mellom %-tegnet og formatspesifikasjonssymbolet. Noen av dem er som følger:

  1. Et minus(-)-tegn forteller venstrejustering.
  2. Et tall etter % spesifiserer minste feltbredde som skal skrives ut hvis tegnene er mindre enn størrelsen på bredden, den gjenværende plassen er fylt med mellomrom, og hvis den er større, skrives den ut som den er uten trunkering.
  3. Et punktum( . )-symbol skiller feltbredden med presisjon.

Presisjon forteller minimum antall sifre i et heltall, maksimalt antall tegn i en streng, og antall sifre etter desimaldelen i en flytende verdi.

Eksempel på I/O-formatering

C




// C Program to demonstrate the formatting methods.> #include> int> main()> {> >char> str[] =>'geeksforgeeks'>;> >printf>(>'%20s '>, str);> >printf>(>'%-20s '>, str);> >printf>(>'%20.5s '>, str);> >printf>(>'%-20.5s '>, str);> >return> 0;> }>

>

>

Produksjon

 geeksforgeeks geeksforgeeks geeks geeks>

Vanlige spørsmål om C-formatspesifikasjoner

1. Har C en formatspesifikasjon for binære tall?

Nei, C-språket gir ikke en formatspesifikasjon for binære tall.

2. Hva er den formaterte strengen?

Inn- og utgangsfunksjonene i C tar en streng som et argument som bestemmer hvordan dataene vises på skjermen eller dataene hentes til minnet. Denne strengen kalles den formaterte strengen.